wifi: mt76: check vif type before reporting cca and csa
authorPeter Chiu <chui-hao.chiu@mediatek.com>
Thu, 31 Aug 2023 06:22:19 +0000 (14:22 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sat, 30 Sep 2023 18:03:05 +0000 (20:03 +0200)
Do not report cca and csa finish to upper layer on station type vif to
prevent warnings caused by setting beacon.

Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c

index a203f90367f4bd0a39e0e9cee86c45ea234d2092..79d0a0f3cc579f9dbcd0cf9729167e53a4478463 100644 (file)
@@ -225,8 +225,10 @@ int mt7915_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3)
 static void
 mt7915_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
 {
-       if (vif->bss_conf.csa_active)
-               ieee80211_csa_finish(vif);
+       if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
+               return;
+
+       ieee80211_csa_finish(vif);
 }
 
 static void
@@ -326,7 +328,7 @@ mt7915_mcu_rx_log_message(struct mt7915_dev *dev, struct sk_buff *skb)
 static void
 mt7915_mcu_cca_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
 {
-       if (!vif->bss_conf.color_change_active)
+       if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
                return;
 
        ieee80211_color_change_finish(vif);
index 27250e7a077da45f8c0e0f46914b433028d33fa3..12bf4e5038b51949edf4291e7761635cff49365a 100644 (file)
@@ -324,8 +324,10 @@ int mt7996_mcu_wa_cmd(struct mt7996_dev *dev, int cmd, u32 a1, u32 a2, u32 a3)
 static void
 mt7996_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
 {
-       if (vif->bss_conf.csa_active)
-               ieee80211_csa_finish(vif);
+       if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
+               return;
+
+       ieee80211_csa_finish(vif);
 }
 
 static void
@@ -399,7 +401,7 @@ out:
 static void
 mt7996_mcu_cca_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
 {
-       if (!vif->bss_conf.color_change_active)
+       if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
                return;
 
        ieee80211_color_change_finish(vif);