summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-06-24 20:57:47 +0200
committerFelix Fietkau <nbd@nbd.name>2022-07-11 13:40:03 +0200
commitaac86cebb4a09e3fa2c07589f79f7d0e07e8c9a4 (patch)
treea6cd783984b090e1f7d2baf777a915bcb3e5a8bb /drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
parentmt76: allow receiving frames with invalid CCMP PN via monitor interfaces (diff)
downloadlinux-aac86cebb4a09e3fa2c07589f79f7d0e07e8c9a4.tar.xz
linux-aac86cebb4a09e3fa2c07589f79f7d0e07e8c9a4.zip
mt76: mt7615: fix throughput regression on DFS channels
For some reason, mt7615 reacts badly to repeatedly enabling/disabling the radar detector without also switching the channel. This results in very bad throughput on DFS channels, because hw->conf.radar_enabled can get toggled a few times after CAC ends. Fix this by always leaving the DFS detector enabled on DFS channels and instead suppress unwanted detection events. Fixes: 2c86f6752046 ("mt76: mt7615: fix/rewrite the dfs state handling logic") Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7615/mcu.c')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7615/mcu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
index 989b2a41b670..3d35381013f1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
@@ -391,6 +391,9 @@ mt7615_mcu_rx_radar_detected(struct mt7615_dev *dev, struct sk_buff *skb)
if (r->band_idx && dev->mt76.phy2)
mphy = dev->mt76.phy2;
+ if (mt76_phy_dfs_state(mphy) < MT_DFS_STATE_CAC)
+ return;
+
ieee80211_radar_detected(mphy->hw);
dev->hw_pattern++;
}