Takashi Iwai c2acef
From 4e58ef4b6d727abdb071f7799aef763f8d6f2ad8 Mon Sep 17 00:00:00 2001
Takashi Iwai c2acef
From: Xing Song <xing.song@mediatek.com>
Takashi Iwai c2acef
Date: Mon, 24 Jan 2022 11:28:11 +0800
Takashi Iwai c2acef
Subject: [PATCH] mt76: stop the radar detector after leaving dfs channel
Takashi Iwai c2acef
Git-commit: 4e58ef4b6d727abdb071f7799aef763f8d6f2ad8
Takashi Iwai c2acef
Patch-mainline: v5.18-rc1
Takashi Iwai c2acef
References: git-fixes
Takashi Iwai c2acef
Takashi Iwai c2acef
The radar detctor is used for dfs channel. So it will start after switching
Takashi Iwai c2acef
to dfs channel and will stop after leaving. The TX will be blocked if radar
Takashi Iwai c2acef
detctor isn't stopped in non-dfs channel.
Takashi Iwai c2acef
Takashi Iwai c2acef
This patch resets the dfs state to indicate the radar detector needs to be
Takashi Iwai c2acef
stopped.
Takashi Iwai c2acef
Takashi Iwai c2acef
Signed-off-by: Xing Song <xing.song@mediatek.com>
Takashi Iwai c2acef
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Takashi Iwai c2acef
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai c2acef
Takashi Iwai c2acef
---
Takashi Iwai c2acef
 drivers/net/wireless/mediatek/mt76/mt7615/main.c | 3 ++-
Takashi Iwai c2acef
 drivers/net/wireless/mediatek/mt76/mt7915/main.c | 3 ++-
Takashi Iwai c2acef
 2 files changed, 4 insertions(+), 2 deletions(-)
Takashi Iwai c2acef
Takashi Iwai c2acef
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/main.c b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
Takashi Iwai c2acef
index fca38f0e1a27..7dcf1fb97eca 100644
Takashi Iwai c2acef
--- a/drivers/net/wireless/mediatek/mt76/mt7615/main.c
Takashi Iwai c2acef
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
Takashi Iwai c2acef
@@ -291,7 +291,8 @@ static void mt7615_init_dfs_state(struct mt7615_phy *phy)
Takashi Iwai c2acef
 	if (hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)
Takashi Iwai c2acef
 		return;
Takashi Iwai c2acef
 
Takashi Iwai c2acef
-	if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR))
Takashi Iwai c2acef
+	if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR) &&
Takashi Iwai c2acef
+	    !(mphy->chandef.chan->flags & IEEE80211_CHAN_RADAR))
Takashi Iwai c2acef
 		return;
Takashi Iwai c2acef
 
Takashi Iwai c2acef
 	if (mphy->chandef.chan->center_freq == chandef->chan->center_freq &&
Takashi Iwai c2acef
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/main.c b/drivers/net/wireless/mediatek/mt76/mt7915/main.c
Takashi Iwai c2acef
index 1149aae7eff4..989298ffffbc 100644
Takashi Iwai c2acef
--- a/drivers/net/wireless/mediatek/mt76/mt7915/main.c
Takashi Iwai c2acef
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/main.c
Takashi Iwai c2acef
@@ -311,7 +311,8 @@ static void mt7915_init_dfs_state(struct mt7915_phy *phy)
Takashi Iwai c2acef
 	if (hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)
Takashi Iwai c2acef
 		return;
Takashi Iwai c2acef
 
Takashi Iwai c2acef
-	if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR))
Takashi Iwai c2acef
+	if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR) &&
Takashi Iwai c2acef
+	    !(mphy->chandef.chan->flags & IEEE80211_CHAN_RADAR))
Takashi Iwai c2acef
 		return;
Takashi Iwai c2acef
 
Takashi Iwai c2acef
 	if (mphy->chandef.chan->center_freq == chandef->chan->center_freq &&
Takashi Iwai c2acef
-- 
Takashi Iwai c2acef
2.35.3
Takashi Iwai c2acef