mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7915: fix net_fill_forward_path for non-DBDC mt7986
Current implementation assumes that the hardware supports DBDC or single
band and binds to band0.
This causes net_fill_forward_path to select the wrong queue for non-DBDC
mt7986 because it binds to band1 and getting the following in dmesg:
ieee80211 phy2: WA: --> drop by reaseon:1, msdu id = 0xc002 but failed!
mtk_wed1: error status=00000002
ieee80211 phy2: WA: txblk
10324e00
len = 128
DW0 : 10 00 00 00
DW1 : 00 00 00 00
DW2 : 00 00 00 00
DW3 : 72 0f 94 68
DW4 : 00 00 00 00
DW5 : ff 03 00 00
DW6 : 00 00 3c 40
DW7 : 00 17 dd 14
DW8 : 79 6f 00 00
DW9 : 02 c0 00 00
DW10 : 58 c5 34 10
DW11 : 00 00 00 00
DW12 : 00 06 3e 00
DW13 : 00 00 00 80
DW14 : 10 8c 00 00
DW15 : 00 00 00 00
DW16 : 00 00 00 00
DW17 : 00 00 00 00
DW18 : 00 00 00 00
DW19 : 00 00 00 00
DW20 : 00 00 00 00
DW21 : 00 00 00 00
DW22 : 00 00 00 00
DW23 : 00 00 00 00
DW24 : 00 00 00 00
DW25 : 00 00 00 00
DW26 : 00 00 00 00
DW27 : 00 00 00 00
DW28 : 00 00 00 00
DW29 : 00 00 00 00
DW30 : 00 00 00 00
DW31 : 00 00 00 00
Fix it by using phy->mt76->band_idx for queue which works for both
non-DBDC and DBDC devices.
Fixes: f68d67623dec ("mt76: mt7915: add Wireless Ethernet Dispatch support")
Suggested-by: Benjamin Larsson <[email protected]>
Signed-off-by: Zhi-Jun You <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
8b90f61178
commit
17114619e5
+1
-1
@@ -1815,7 +1815,7 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
|
|||||||
path->dev = ctx->dev;
|
path->dev = ctx->dev;
|
||||||
path->mtk_wdma.wdma_idx = wed->wdma_idx;
|
path->mtk_wdma.wdma_idx = wed->wdma_idx;
|
||||||
path->mtk_wdma.bss = mvif->mt76.idx;
|
path->mtk_wdma.bss = mvif->mt76.idx;
|
||||||
path->mtk_wdma.queue = phy != &dev->phy;
|
path->mtk_wdma.queue = phy->mt76->band_idx;
|
||||||
if (test_bit(MT_WCID_FLAG_4ADDR, &msta->wcid.flags) ||
|
if (test_bit(MT_WCID_FLAG_4ADDR, &msta->wcid.flags) ||
|
||||||
is_mt7915(&dev->mt76))
|
is_mt7915(&dev->mt76))
|
||||||
path->mtk_wdma.wcid = msta->wcid.idx;
|
path->mtk_wdma.wcid = msta->wcid.idx;
|
||||||
|
|||||||
Reference in New Issue
Block a user