7
7
#include "mt76.h"
8
8
#include "dma.h"
9
9
10
+ #define Q_READ (_dev , _q , _field ) readl(&(_q)->regs->_field)
11
+ #define Q_WRITE (_dev , _q , _field , _val ) writel(_val, &(_q)->regs->_field)
12
+
13
+
10
14
static struct mt76_txwi_cache *
11
15
mt76_alloc_txwi (struct mt76_dev * dev )
12
16
{
@@ -84,9 +88,9 @@ mt76_free_pending_txwi(struct mt76_dev *dev)
84
88
static void
85
89
mt76_dma_sync_idx (struct mt76_dev * dev , struct mt76_queue * q )
86
90
{
87
- writel ( q -> desc_dma , & q -> regs -> desc_base );
88
- writel ( q -> ndesc , & q -> regs -> ring_size );
89
- q -> head = readl ( & q -> regs -> dma_idx );
91
+ Q_WRITE ( dev , q , desc_base , q -> desc_dma );
92
+ Q_WRITE ( dev , q , ring_size , q -> ndesc );
93
+ q -> head = Q_READ ( dev , q , dma_idx );
90
94
q -> tail = q -> head ;
91
95
}
92
96
@@ -102,8 +106,8 @@ mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
102
106
for (i = 0 ; i < q -> ndesc ; i ++ )
103
107
q -> desc [i ].ctrl = cpu_to_le32 (MT_DMA_CTL_DMA_DONE );
104
108
105
- writel ( 0 , & q -> regs -> cpu_idx );
106
- writel ( 0 , & q -> regs -> dma_idx );
109
+ Q_WRITE ( dev , q , cpu_idx , 0 );
110
+ Q_WRITE ( dev , q , dma_idx , 0 );
107
111
mt76_dma_sync_idx (dev , q );
108
112
}
109
113
@@ -226,7 +230,7 @@ static void
226
230
mt76_dma_kick_queue (struct mt76_dev * dev , struct mt76_queue * q )
227
231
{
228
232
wmb ();
229
- writel ( q -> head , & q -> regs -> cpu_idx );
233
+ Q_WRITE ( dev , q , cpu_idx , q -> head );
230
234
}
231
235
232
236
static void
@@ -242,7 +246,7 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush)
242
246
if (flush )
243
247
last = -1 ;
244
248
else
245
- last = readl ( & q -> regs -> dma_idx );
249
+ last = Q_READ ( dev , q , dma_idx );
246
250
247
251
while (q -> queued > 0 && q -> tail != last ) {
248
252
mt76_dma_tx_cleanup_idx (dev , q , q -> tail , & entry );
@@ -254,8 +258,7 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush)
254
258
}
255
259
256
260
if (!flush && q -> tail == last )
257
- last = readl (& q -> regs -> dma_idx );
258
-
261
+ last = Q_READ (dev , q , dma_idx );
259
262
}
260
263
spin_unlock_bh (& q -> cleanup_lock );
261
264
0 commit comments