mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7925: add link handling in mt7925_mcu_set_beacon_filter
add link handling in mt7925_mcu_set_beacon_filter Co-developed-by: Ming Yen Hsieh <[email protected]> Signed-off-by: Ming Yen Hsieh <[email protected]> Co-developed-by: Deren Wu <[email protected]> Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Sean Wang <[email protected]> Link: https://patch.msgid.link/b814718a40ad5df6100e63d15c87ba95a318bc22.1720248331.git.sean.wang@kernel.org Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
+17
-6
@@ -1818,21 +1818,32 @@ int mt7925_mcu_set_beacon_filter(struct mt792x_dev *dev,
|
||||
{
|
||||
#define MT7925_FIF_BIT_CLR BIT(1)
|
||||
#define MT7925_FIF_BIT_SET BIT(0)
|
||||
struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
|
||||
unsigned long valid = ieee80211_vif_is_mld(vif) ?
|
||||
mvif->valid_links : BIT(0);
|
||||
struct ieee80211_bss_conf *bss_conf;
|
||||
int err = 0;
|
||||
int i;
|
||||
|
||||
if (enable) {
|
||||
err = mt7925_mcu_uni_bss_bcnft(dev, &vif->bss_conf, true);
|
||||
if (err)
|
||||
return err;
|
||||
for_each_set_bit(i, &valid, IEEE80211_MLD_MAX_NUM_LINKS) {
|
||||
bss_conf = mt792x_vif_to_bss_conf(vif, i);
|
||||
err = mt7925_mcu_uni_bss_bcnft(dev, bss_conf, true);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
return mt7925_mcu_set_rxfilter(dev, 0,
|
||||
MT7925_FIF_BIT_SET,
|
||||
MT_WF_RFCR_DROP_OTHER_BEACON);
|
||||
}
|
||||
|
||||
err = mt7925_mcu_set_bss_pm(dev, &vif->bss_conf, false);
|
||||
if (err)
|
||||
return err;
|
||||
for_each_set_bit(i, &valid, IEEE80211_MLD_MAX_NUM_LINKS) {
|
||||
bss_conf = mt792x_vif_to_bss_conf(vif, i);
|
||||
err = mt7925_mcu_set_bss_pm(dev, bss_conf, false);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
return mt7925_mcu_set_rxfilter(dev, 0,
|
||||
MT7925_FIF_BIT_CLR,
|
||||
|
||||
Reference in New Issue
Block a user