When a DMA channel is opened the IRQ should not get activated
automatically, this allows it to pull data out manually without the help
of interrupts. This is needed for a workaround in the vrx200 Ethernet
driver.

Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de>
---
 arch/mips/lantiq/xway/dma.c        | 1 -
 drivers/net/ethernet/lantiq_etop.c | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c
index 4b9fbb6744ad..3a90bb4edacc 100644
--- a/arch/mips/lantiq/xway/dma.c
+++ b/arch/mips/lantiq/xway/dma.c
@@ -106,7 +106,6 @@ ltq_dma_open(struct ltq_dma_channel *ch)
        spin_lock_irqsave(&ltq_dma_lock, flag);
        ltq_dma_w32(ch->nr, LTQ_DMA_CS);
        ltq_dma_w32_mask(0, DMA_CHAN_ON, LTQ_DMA_CCTRL);
-       ltq_dma_w32_mask(0, 1 << ch->nr, LTQ_DMA_IRNEN);
        spin_unlock_irqrestore(&ltq_dma_lock, flag);
 }
 EXPORT_SYMBOL_GPL(ltq_dma_open);
diff --git a/drivers/net/ethernet/lantiq_etop.c 
b/drivers/net/ethernet/lantiq_etop.c
index afc810069440..c978a857a25c 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -438,6 +438,7 @@ ltq_etop_open(struct net_device *dev)
                if (!IS_TX(i) && (!IS_RX(i)))
                        continue;
                ltq_dma_open(&ch->dma);
+               ltq_dma_enable_irq(&ch->dma);
                napi_enable(&ch->napi);
        }
        phy_start(dev->phydev);
-- 
2.11.0

Reply via email to