OSDN Git Service

wifi: mt76: dma: reset wed queues in mt76_dma_rx_reset
authorSujuan Chen <sujuan.chen@mediatek.com>
Tue, 17 Jan 2023 14:02:54 +0000 (15:02 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 3 Feb 2023 13:47:48 +0000 (14:47 +0100)
This is a preliminary patch to introduce proper wed reset support.

Tested-by: Daniel Golle <daniel@makrotopia.org>
Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c

index b3965ed..3bf3216 100644 (file)
@@ -758,8 +758,13 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
                q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE);
 
        mt76_dma_rx_cleanup(dev, q);
-       mt76_dma_sync_idx(dev, q);
-       mt76_dma_rx_fill(dev, q, false);
+
+       /* reset WED rx queues */
+       mt76_dma_wed_setup(dev, q, true);
+       if (q->flags != MT_WED_Q_TXFREE) {
+               mt76_dma_sync_idx(dev, q);
+               mt76_dma_rx_fill(dev, q, false);
+       }
 }
 
 static void