1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-01-12 14:00:15 +02:00

ramips: raeth: don't process disabled interrupts

Also rename the 'fe_int' variable.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30713 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg 2012-02-25 11:59:19 +00:00
parent ebeffb64e9
commit b83545fa99

View File

@ -755,21 +755,27 @@ static irqreturn_t
ramips_eth_irq(int irq, void *dev) ramips_eth_irq(int irq, void *dev)
{ {
struct raeth_priv *re = netdev_priv(dev); struct raeth_priv *re = netdev_priv(dev);
unsigned long fe_int = ramips_fe_rr(RAMIPS_FE_INT_STATUS); unsigned int status;
ramips_fe_wr(0xFFFFFFFF, RAMIPS_FE_INT_STATUS); status = ramips_fe_rr(RAMIPS_FE_INT_STATUS);
status &= ramips_fe_rr(RAMIPS_FE_INT_ENABLE);
if (fe_int & RAMIPS_RX_DLY_INT) { if (!status)
return IRQ_NONE;
ramips_fe_wr(status, RAMIPS_FE_INT_STATUS);
if (status & RAMIPS_RX_DLY_INT) {
ramips_fe_int_disable(RAMIPS_RX_DLY_INT); ramips_fe_int_disable(RAMIPS_RX_DLY_INT);
tasklet_schedule(&re->rx_tasklet); tasklet_schedule(&re->rx_tasklet);
} }
if (fe_int & RAMIPS_TX_DLY_INT) { if (status & RAMIPS_TX_DLY_INT) {
ramips_fe_int_disable(RAMIPS_TX_DLY_INT); ramips_fe_int_disable(RAMIPS_TX_DLY_INT);
tasklet_schedule(&re->tx_housekeeping_tasklet); tasklet_schedule(&re->tx_housekeeping_tasklet);
} }
raeth_debugfs_update_int_stats(re, fe_int); raeth_debugfs_update_int_stats(re, status);
return IRQ_HANDLED; return IRQ_HANDLED;
} }