wifi: mt76: dma: introduce __mt76_dma_queue_reset utility routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 20 Oct 2023 10:30:55 +0000 (12:30 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 7 Dec 2023 17:50:20 +0000 (18:50 +0100)
This is a preliminary patch to introduce WED support for mt7996

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c

index a7a045488cb263ccbab407c28b45af9244e8f7fd..12615b49c0d741a6c4a25d609288afae74549a68 100644 (file)
@@ -195,7 +195,8 @@ mt76_dma_sync_idx(struct mt76_dev *dev, struct mt76_queue *q)
 }
 
 static void
-mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
+__mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q,
+                      bool reset_idx)
 {
        int i;
 
@@ -206,11 +207,19 @@ mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
        for (i = 0; i < q->ndesc; i++)
                q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE);
 
-       Q_WRITE(q, cpu_idx, 0);
-       Q_WRITE(q, dma_idx, 0);
+       if (reset_idx) {
+               Q_WRITE(q, cpu_idx, 0);
+               Q_WRITE(q, dma_idx, 0);
+       }
        mt76_dma_sync_idx(dev, q);
 }
 
+static void
+mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
+{
+       __mt76_dma_queue_reset(dev, q, true);
+}
+
 static int
 mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
                    struct mt76_queue_buf *buf, void *data)