Эх сурвалжийг харах

MIPS: lantiq: Do not enable IRQs in dma open

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 <hauke@hauke-m.de>
Acked-by: Paul Burton <paul.burton@mips.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hauke Mehrtens 7 жил өмнө
parent
commit
cc973aecf0

+ 0 - 1
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);
 	spin_lock_irqsave(&ltq_dma_lock, flag);
 	ltq_dma_w32(ch->nr, LTQ_DMA_CS);
 	ltq_dma_w32(ch->nr, LTQ_DMA_CS);
 	ltq_dma_w32_mask(0, DMA_CHAN_ON, LTQ_DMA_CCTRL);
 	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);
 	spin_unlock_irqrestore(&ltq_dma_lock, flag);
 }
 }
 EXPORT_SYMBOL_GPL(ltq_dma_open);
 EXPORT_SYMBOL_GPL(ltq_dma_open);

+ 1 - 0
drivers/net/ethernet/lantiq_etop.c

@@ -432,6 +432,7 @@ ltq_etop_open(struct net_device *dev)
 		if (!IS_TX(i) && (!IS_RX(i)))
 		if (!IS_TX(i) && (!IS_RX(i)))
 			continue;
 			continue;
 		ltq_dma_open(&ch->dma);
 		ltq_dma_open(&ch->dma);
+		ltq_dma_enable_irq(&ch->dma);
 		napi_enable(&ch->napi);
 		napi_enable(&ch->napi);
 	}
 	}
 	phy_start(dev->phydev);
 	phy_start(dev->phydev);