aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2019-03-03 18:40:18 +0100
committerFelix Fietkau <nbd@nbd.name>2019-03-07 12:50:23 +0100
commitfca9615f1a436d1e9f64042cda08a34fe32ce668 (patch)
tree0480deea1ecc44e6252ffea80d91b4a7903bb083 /drivers/net/wireless
parentmt76: mt7603: clear ps filtering mode before releasing buffered frames (diff)
downloadlinux-dev-fca9615f1a436d1e9f64042cda08a34fe32ce668.tar.xz
linux-dev-fca9615f1a436d1e9f64042cda08a34fe32ce668.zip
mt76: mt7603: fix up hardware queue index for PS filtered packets
Make the queue index match the hardware queue on which they get sent out Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7603/dma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/dma.c b/drivers/net/wireless/mediatek/mt76/mt7603/dma.c
index d69e82c66ab2..494a48e023ef 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/dma.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/dma.c
@@ -50,6 +50,10 @@ mt7603_rx_loopback_skb(struct mt7603_dev *dev, struct sk_buff *skb)
val = le32_to_cpu(txd[0]);
skb_set_queue_mapping(skb, FIELD_GET(MT_TXD0_Q_IDX, val));
+ val &= ~(MT_TXD0_P_IDX | MT_TXD0_Q_IDX);
+ val |= FIELD_PREP(MT_TXD0_Q_IDX, MT_TX_HW_QUEUE_MGMT);
+ txd[0] = cpu_to_le32(val);
+
spin_lock_bh(&dev->ps_lock);
__skb_queue_tail(&msta->psq, skb);
if (skb_queue_len(&msta->psq) >= 64) {