mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
move dma cleanup to core
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -252,3 +252,25 @@ int mt76_dma_init(struct mt76_dev *dev)
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_dma_init);
|
||||
|
||||
static void
|
||||
mt76_tx_cleanup_entry(struct mt76_dev *dev, struct mt76_queue *q,
|
||||
struct mt76_queue_entry *e)
|
||||
{
|
||||
if (e->txwi)
|
||||
ieee80211_free_txskb(dev->hw, e->skb);
|
||||
else
|
||||
dev_kfree_skb_any(e->skb);
|
||||
}
|
||||
|
||||
void mt76_dma_cleanup(struct mt76_dev *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dev->q_tx); i++)
|
||||
mt76_dma_tx_cleanup(dev, &dev->q_tx[i], true,
|
||||
mt76_tx_cleanup_entry);
|
||||
for (i = 0; i < ARRAY_SIZE(dev->q_rx); i++)
|
||||
mt76_dma_rx_cleanup(dev, &dev->q_rx[i]);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_dma_cleanup);
|
||||
|
||||
@@ -30,5 +30,6 @@ struct mt76_desc {
|
||||
} __packed __aligned(4);
|
||||
|
||||
int mt76_dma_init(struct mt76_dev *dev);
|
||||
void mt76_dma_cleanup(struct mt76_dev *dev);
|
||||
|
||||
#endif
|
||||
|
||||
+1
-6
@@ -294,8 +294,6 @@ int mt7603_dma_init(struct mt7603_dev *dev)
|
||||
|
||||
void mt7603_dma_cleanup(struct mt7603_dev *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
mt76_clear(dev, MT_WPDMA_GLO_CFG,
|
||||
MT_WPDMA_GLO_CFG_TX_DMA_EN |
|
||||
MT_WPDMA_GLO_CFG_RX_DMA_EN |
|
||||
@@ -303,8 +301,5 @@ void mt7603_dma_cleanup(struct mt7603_dev *dev)
|
||||
|
||||
tasklet_kill(&dev->tx_tasklet);
|
||||
tasklet_kill(&dev->rx_tasklet);
|
||||
for (i = 0; i < ARRAY_SIZE(dev->mt76.q_tx); i++)
|
||||
mt7603_tx_cleanup(dev, &dev->mt76.q_tx[i], true);
|
||||
for (i = 0; i < ARRAY_SIZE(dev->mt76.q_rx); i++)
|
||||
mt76_queue_rx_cleanup(dev, &dev->mt76.q_rx[i]);
|
||||
mt76_dma_cleanup(&dev->mt76);
|
||||
}
|
||||
|
||||
+1
-6
@@ -341,12 +341,7 @@ int mt76x2_dma_init(struct mt76x2_dev *dev)
|
||||
|
||||
void mt76x2_dma_cleanup(struct mt76x2_dev *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
tasklet_kill(&dev->tx_tasklet);
|
||||
tasklet_kill(&dev->rx_tasklet);
|
||||
for (i = 0; i < ARRAY_SIZE(dev->mt76.q_tx); i++)
|
||||
mt76x2_tx_cleanup(dev, &dev->mt76.q_tx[i], true);
|
||||
for (i = 0; i < ARRAY_SIZE(dev->mt76.q_rx); i++)
|
||||
mt76_queue_rx_cleanup(dev, &dev->mt76.q_rx[i]);
|
||||
mt76_dma_cleanup(&dev->mt76);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user