diff --git a/mt7603_dma.c b/mt7603_dma.c index e4fad27d..30b85696 100644 --- a/mt7603_dma.c +++ b/mt7603_dma.c @@ -265,7 +265,9 @@ int mt7603_dma_init(struct mt7603_dev *dev) mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_TX_DMA_EN | - MT_WPDMA_GLO_CFG_RX_DMA_EN); + MT_WPDMA_GLO_CFG_RX_DMA_EN | + MT_WPDMA_GLO_CFG_DMA_BURST_SIZE | + MT_WPDMA_GLO_CFG_TX_WRITEBACK_DONE); mt76_wr(dev, MT_WPDMA_RST_IDX, ~0); @@ -320,7 +322,8 @@ void mt7603_dma_cleanup(struct mt7603_dev *dev) mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_TX_DMA_EN | - MT_WPDMA_GLO_CFG_RX_DMA_EN); + MT_WPDMA_GLO_CFG_RX_DMA_EN | + MT_WPDMA_GLO_CFG_TX_WRITEBACK_DONE); tasklet_kill(&dev->tx_tasklet); tasklet_kill(&dev->rx_tasklet); diff --git a/mt7603_init.c b/mt7603_init.c index a280ba32..aab8f067 100644 --- a/mt7603_init.c +++ b/mt7603_init.c @@ -70,7 +70,9 @@ mt7603_mac_early_init(struct mt7603_dev *dev) mt76_set(dev, MT_WPDMA_GLO_CFG, (MT_WPDMA_GLO_CFG_TX_DMA_EN | - MT_WPDMA_GLO_CFG_RX_DMA_EN)); + MT_WPDMA_GLO_CFG_RX_DMA_EN | + MT76_SET(MT_WPDMA_GLO_CFG_DMA_BURST_SIZE, 3) | + MT_WPDMA_GLO_CFG_TX_WRITEBACK_DONE)); mt7603_irq_enable(dev, MT_INT_RX_DONE_ALL | MT_INT_TX_DONE_ALL);