Skip to contentSkip to conversation

wifi: mt76: mt7915: fix broken background radar implementation

PATCH [email protected] 2 participants 4 messages Feb 21, 2025 – Feb 26, 2025

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

---
 drivers/net/wireless/mt76/mt7915/mcu.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/drivers/net/wireless/mt76/mt7915/mcu.c
index 9d790f23..a2bad361 100644

drivers/net/wireless/mt76/mt7915/mcu.c renamed from drivers/net/wireless/mt76/mt7915/mcu.c +0 -1
@@ -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;

@@ -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)

#1 lore raw

Hi Lukasz,

Quoted 11 lines · On 21.02.25 16:35, [email protected] 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

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

#2 lore raw

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 <[email protected]>
Sent: Tuesday, February 25, 2025 9:30 PM
To: [email protected]; [email protected]; [email protected]
Subject: Re: wifi: mt76: mt7915: fix broken background radar implementation

Hi Lukasz,

Quoted 12 lines · On 21.02.25 16:35, [email protected] 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

Quoted 1 line

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

#3 lore raw
Quoted 4 lines · On 26.02.25 16:23, [email protected] 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