diff mbox series

wifi: mt76: mt7915: fix broken background radar implementation

Message ID 003401db8476$348684c0$9d938e40$@onet.pl
State New
Headers show
Series wifi: mt76: mt7915: fix broken background radar implementation | expand

Commit Message

lukasz.michalski@onet.pl Feb. 21, 2025, 3:35 p.m. UTC
Currently enabling background radar in hostapd results in unreachable AP.
There is because of mistake in enabling background radar implementation for
mt7915 mcu driver - 3rd and 4th parameters are swapped.
mt76_connac_mcu_rdd_cmd requires rx_sel as a fourth parameter but this
parameter is provided as third argument.
Fix was tested on mt7981 and background radar works now correctly. Other
mt76 drivers do not have similar issues.
The issue was also described here:
https://github.com/openwrt/mt76/issues/958

Signed-off-by: Lukasz Michalski <lukasz.michalski@onet.pl>
---
 drivers/net/wireless/mt76/mt7915/mcu.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

 
@@ -2745,8 +2745,8 @@ int mt7915_mcu_rdd_background_enable(str
 		break;
 	}
 
-	return mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_START, MT_RX_SEL2,
-				       0, region);
+	return mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_START, 0,
+				       MT_RX_SEL2, region);
 }
 
 int mt7915_mcu_set_chan_info(struct mt7915_phy *phy, int cmd)

Comments

Felix Fietkau Feb. 25, 2025, 8:30 p.m. UTC | #1
Hi Lukasz,

On 21.02.25 16:35, lukasz.michalski@onet.pl wrote:
> Currently enabling background radar in hostapd results in unreachable AP.
> There is because of mistake in enabling background radar implementation for
> mt7915 mcu driver - 3rd and 4th parameters are swapped.
> mt76_connac_mcu_rdd_cmd requires rx_sel as a fourth parameter but this
> parameter is provided as third argument.
> Fix was tested on mt7981 and background radar works now correctly. Other
> mt76 drivers do not have similar issues.
> The issue was also described here:
> https://github.com/openwrt/mt76/issues/958
> 
> Signed-off-by: Lukasz Michalski <lukasz.michalski@onet.pl>

MediaTek informed me that MT7981 does not actually have background radar 
detection in hardware, so this patch can't be merged.
We should instead change the driver code to refuse attempts to enable 
background radar detection on this chip.

- Felix
lukasz.michalski@onet.pl Feb. 26, 2025, 3:23 p.m. UTC | #2
Hi Felix, thanks for the info.

Is it only about mt7981 or mt7986 too?
Strange that patched code works flawlessly (or maybe firmware just sliently ignores scan requests?).

Lukasz Michalski

-----Original Message-----
From: Felix Fietkau <nbd@nbd.name> 
Sent: Tuesday, February 25, 2025 9:30 PM
To: lukasz.michalski@onet.pl; linux-wireless@vger.kernel.org; lorenzo@kernel.org
Subject: Re: wifi: mt76: mt7915: fix broken background radar implementation

Hi Lukasz,

On 21.02.25 16:35, lukasz.michalski@onet.pl wrote:
> Currently enabling background radar in hostapd results in unreachable AP.
> There is because of mistake in enabling background radar 
> implementation for
> mt7915 mcu driver - 3rd and 4th parameters are swapped.
> mt76_connac_mcu_rdd_cmd requires rx_sel as a fourth parameter but this 
> parameter is provided as third argument.
> Fix was tested on mt7981 and background radar works now correctly. 
> Other
> mt76 drivers do not have similar issues.
> The issue was also described here:
> https://github.com/openwrt/mt76/issues/958
> 
> Signed-off-by: Lukasz Michalski <lukasz.michalski@onet.pl>

MediaTek informed me that MT7981 does not actually have background radar detection in hardware, so this patch can't be merged.
We should instead change the driver code to refuse attempts to enable background radar detection on this chip.

- Felix
Felix Fietkau Feb. 26, 2025, 3:41 p.m. UTC | #3
On 26.02.25 16:23, lukasz.michalski@onet.pl wrote:
> Hi Felix, thanks for the info.
> 
> Is it only about mt7981 or mt7986 too?
> Strange that patched code works flawlessly (or maybe firmware just sliently ignores scan requests?).

I think MT7986 also doesn't have that feature. Additionally, the feature 
is only available on devices that have a separate antenna just for DFS.

I think with your patch it wasn't performing any actual background radar 
detection, but the driver and mac80211 weren't noticing. So it only 
appeared to work but wasn't compliant in any way.

- Felix
diff mbox series

Patch

diff --git a/drivers/net/wireless/mt76/mt7915/mcu.c
b/drivers/net/wireless/mt76/mt7915/mcu.c
index 9d790f23..a2bad361 100644
--- a/drivers/net/wireless/mt76/mt7915/mcu.c
+++ b/ drivers/net/wireless/mt76/mt7915/mcu.c
@@ -2718,8 +2718,8 @@  int mt7915_mcu_rdd_background_enable(str
 	int err, region;
 
 	if (!chandef) { /* disable offchain */
-		err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP,
MT_RX_SEL2,
-					      0, 0);
+		err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 0,
+					      MT_RX_SEL2, 0);
 		if (err)
 			return err;