mt76 icon indicating copy to clipboard operation
mt76 copied to clipboard

WED not working on mt7986

Open tkso1997 opened this issue 1 year ago • 13 comments

I am running a self compiled OpenWRT (kernen 6.1.x) on my ASUS RT-AX59U which uses mt7986 as wireless chip.The system runs fine and both 2.4 and 5GHz are working nicely. For some reason it is not possible to activate WED.

When adding "options mt7915e wed_enable=Y" to /etc/modules.conf wife still works normal and a "cat /sys/module/mt7915e/parameters/wed_enable gives me a "Y" which implies it is activated, but the CPU load is the same as before when WIFI is under load. In addition there is no information saying that the offload firmware was successfully loaded in dmesg.

[ 12.196554] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20221012174648a
[ 12.196554]
[ 12.548727] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20221012174725
[ 12.710033] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20221012174937
[ 12.857014] mt798x-wmac 18000000.wifi: eeprom load fail, use default bin
[ 15.788977] PPP generic driver version 2.4.2
[ 15.794019] NET: Registered PF_PPPOX protocol family

I have all firmware files in /lib/firmware/mediatek

ls
mt7986_eeprom_mt7975.bin	
mt7986_rom_patch_mt7975.bin
mt7986_eeprom_mt7975_dual.bin	
mt7986_wa.bin
mt7986_eeprom_mt7976.bin	
mt7986_wm.bin
mt7986_eeprom_mt7976_dbdc.bin	
mt7986_wm_mt7975.bin
mt7986_eeprom_mt7976_dual.bin	
mt7986_wo_0.bin
mt7986_rom_patch.bin		
mt7986_wo_1.bin

Is there anything a can to to figure out why its not working/debug it?

tkso1997 avatar Aug 27 '23 14:08 tkso1997

maybe dts misses something to enable it?

lukasz1992 avatar Aug 27 '23 20:08 lukasz1992

maybe dts misses something to enable it?

I was using the testing kernel 6.1 and apparently parts of the dts are missing in it. By switching back to 5.15 the offloading FW gets loaded but still no CPU load difference - so I guess it's still not working as it should.

[   12.652702] platform 15010000.wed: MTK WED WO Firmware Version: DEV_000000, Build Time: 20230421120352
[   12.662012] platform 15010000.wed: MTK WED WO Chip ID 00 Region 3
[   13.150486] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20230421120313a
[   13.150486] 
[   14.714416] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20230421120340
[   15.171696] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20230421120342```

tkso1997 avatar Aug 28 '23 13:08 tkso1997

I have this commit to fix wed on mt7981

diff --git a/mt7915/main.c b/mt7915/main.c
index 9b79e915..fc9ec9df 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1632,7 +1632,7 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
        path->dev = ctx->dev;
        path->mtk_wdma.wdma_idx = wed->wdma_idx;
        path->mtk_wdma.bss = mvif->mt76.idx;
-       path->mtk_wdma.wcid = is_mt7915(&dev->mt76) ? msta->wcid.idx : 0x3ff;
+       path->mtk_wdma.wcid = (is_mt7915(&dev->mt76) || is_mt7981(&dev->mt76)) ? msta->wcid.idx : 0x3ff;
        path->mtk_wdma.queue = phy != &dev->phy;
 
        ctx->dev = NULL;

ptpt52 avatar Aug 31 '23 10:08 ptpt52

I have this commit to fix wed on mt7981

diff --git a/mt7915/main.c b/mt7915/main.c
index 9b79e915..fc9ec9df 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1632,7 +1632,7 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
        path->dev = ctx->dev;
        path->mtk_wdma.wdma_idx = wed->wdma_idx;
        path->mtk_wdma.bss = mvif->mt76.idx;
-       path->mtk_wdma.wcid = is_mt7915(&dev->mt76) ? msta->wcid.idx : 0x3ff;
+       path->mtk_wdma.wcid = (is_mt7915(&dev->mt76) || is_mt7981(&dev->mt76)) ? msta->wcid.idx : 0x3ff;
        path->mtk_wdma.queue = phy != &dev->phy;
 
        ctx->dev = NULL;

@ptpt52 do you have any special use case? For me it looks like it works without this patch; I use 23.05 branch

lukasz1992 avatar Aug 31 '23 12:08 lukasz1992

@lukasz1992 wed could not work without this patch for my 7981 device. is your device 7981 ?

ptpt52 avatar Aug 31 '23 13:08 ptpt52

@ptpt52 yes, mt3000

lukasz1992 avatar Aug 31 '23 17:08 lukasz1992

@ptpt52 @lukasz1992 I can also confirm WED works for me using 23.05-rc3 on Cudy WRC3000 mt7981 with mt7981_wo.bin added. On the other side not all traffic is offloaded and shows in /sys/kernel/debug/ppe0/bind . Bridger restart usually help for a while

nicefile avatar Sep 05 '23 18:09 nicefile

very strange I can confirm that WED cannot work without my patch.

ptpt52 avatar Sep 20 '23 07:09 ptpt52

@tkso1997 hi buddy, have you solved this problem? I have the same problem on gl-mt6000, with the 6.1 kernel. After activate WED, I tested the wifi and the CPU had a high load.

JiaY-shi avatar Jan 05 '24 01:01 JiaY-shi

@tkso1997 hi buddy, have you solved this problem? I have the same problem on gl-mt6000, with the 6.1 kernel. After activate WED, I tested the wifi and the CPU had a high load.

I’m having the same issue. Did you get this resolved?

gssjshark avatar Mar 02 '24 21:03 gssjshark