mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-04 19:03:09 +02:00
[ramips] fixes dma bug in eth driver, that was caused under high net load. the dma ring was not initialized on time
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18149 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
95d5066d03
commit
6c7f40ae71
@ -248,6 +248,8 @@ ramips_eth_irq(int irq, void *dev)
|
|||||||
struct raeth_priv *priv = netdev_priv(dev);
|
struct raeth_priv *priv = netdev_priv(dev);
|
||||||
unsigned long fe_int = ramips_fe_rr(RAMIPS_FE_INT_STATUS);
|
unsigned long fe_int = ramips_fe_rr(RAMIPS_FE_INT_STATUS);
|
||||||
|
|
||||||
|
ramips_fe_wr(0xFFFFFFFF, RAMIPS_FE_INT_STATUS);
|
||||||
|
|
||||||
if(fe_int & RAMIPS_RX_DLY_INT)
|
if(fe_int & RAMIPS_RX_DLY_INT)
|
||||||
{
|
{
|
||||||
ramips_fe_wr(ramips_fe_rr(RAMIPS_FE_INT_ENABLE) & ~(RAMIPS_RX_DLY_INT),
|
ramips_fe_wr(ramips_fe_rr(RAMIPS_FE_INT_ENABLE) & ~(RAMIPS_RX_DLY_INT),
|
||||||
@ -255,8 +257,7 @@ ramips_eth_irq(int irq, void *dev)
|
|||||||
tasklet_schedule(&priv->rx_tasklet);
|
tasklet_schedule(&priv->rx_tasklet);
|
||||||
}
|
}
|
||||||
if(fe_int & RAMIPS_TX_DLY_INT)
|
if(fe_int & RAMIPS_TX_DLY_INT)
|
||||||
tasklet_schedule(&priv->tx_housekeeping_tasklet);
|
ramips_eth_tx_housekeeping((unsigned long)dev);
|
||||||
ramips_fe_wr(0xFFFFFFFF, RAMIPS_FE_INT_STATUS);
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user