mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-14 16:56:41 -05:00
wifi: mt76: dma: add reset to mt76_dma_wed_setup signature
Export mt76_dma_wed_setup routine. 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>
This commit is contained in:
committed by
Felix Fietkau
parent
ba01944ade
commit
1d5f5d55ef
@@ -626,14 +626,17 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
|
||||
return frames;
|
||||
}
|
||||
|
||||
static int
|
||||
mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
|
||||
int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
|
||||
{
|
||||
#ifdef CONFIG_NET_MEDIATEK_SOC_WED
|
||||
struct mtk_wed_device *wed = &dev->mmio.wed;
|
||||
int ret, type, ring;
|
||||
u8 flags = q->flags;
|
||||
u8 flags;
|
||||
|
||||
if (!q || !q->ndesc)
|
||||
return -EINVAL;
|
||||
|
||||
flags = q->flags;
|
||||
if (!mtk_wed_device_active(wed))
|
||||
q->flags &= ~MT_QFLAG_WED;
|
||||
|
||||
@@ -645,7 +648,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
|
||||
|
||||
switch (type) {
|
||||
case MT76_WED_Q_TX:
|
||||
ret = mtk_wed_device_tx_ring_setup(wed, ring, q->regs, false);
|
||||
ret = mtk_wed_device_tx_ring_setup(wed, ring, q->regs, reset);
|
||||
if (!ret)
|
||||
q->wed_regs = wed->tx_ring[ring].reg_base;
|
||||
break;
|
||||
@@ -661,7 +664,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
|
||||
q->wed_regs = wed->txfree_ring.reg_base;
|
||||
break;
|
||||
case MT76_WED_Q_RX:
|
||||
ret = mtk_wed_device_rx_ring_setup(wed, ring, q->regs, false);
|
||||
ret = mtk_wed_device_rx_ring_setup(wed, ring, q->regs, reset);
|
||||
if (!ret)
|
||||
q->wed_regs = wed->rx_ring[ring].reg_base;
|
||||
break;
|
||||
@@ -674,6 +677,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_dma_wed_setup);
|
||||
|
||||
static int
|
||||
mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
|
||||
@@ -704,7 +708,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = mt76_dma_wed_setup(dev, q);
|
||||
ret = mt76_dma_wed_setup(dev, q, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -56,5 +56,6 @@ enum mt76_mcu_evt_type {
|
||||
int mt76_dma_rx_poll(struct napi_struct *napi, int budget);
|
||||
void mt76_dma_attach(struct mt76_dev *dev);
|
||||
void mt76_dma_cleanup(struct mt76_dev *dev);
|
||||
int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user