aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2010-10-05 14:10:34 +0000
committerGabor Juhos <juhosg@openwrt.org>2010-10-05 14:10:34 +0000
commit69355ee10ed6f1f5815641ad0c58783d28cf37d0 (patch)
treeba25b71f14d91d52198887ee300ad3a8fe587da6
parent25a71a59aec292f177224f2d5f6567a3362ef9b0 (diff)
downloadupstream-69355ee10ed6f1f5815641ad0c58783d28cf37d0.tar.gz
upstream-69355ee10ed6f1f5815641ad0c58783d28cf37d0.tar.bz2
upstream-69355ee10ed6f1f5815641ad0c58783d28cf37d0.zip
ramips: Allow ethernet interface to be taken down and up again
Taking the ramips ethernet interface down and up again resulted in the driver not receiving any frames anymore. Fix this by correctly disabling interrupts in the hw on ifdown. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> SVN-Revision: 23243
-rw-r--r--target/linux/ramips/files/drivers/net/ramips.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/target/linux/ramips/files/drivers/net/ramips.c b/target/linux/ramips/files/drivers/net/ramips.c
index a979fe04c7..fb6e6e84ef 100644
--- a/target/linux/ramips/files/drivers/net/ramips.c
+++ b/target/linux/ramips/files/drivers/net/ramips.c
@@ -406,6 +406,10 @@ ramips_eth_stop(struct net_device *dev)
ramips_fe_wr(ramips_fe_rr(RAMIPS_PDMA_GLO_CFG) &
~(RAMIPS_TX_WB_DDONE | RAMIPS_RX_DMA_EN | RAMIPS_TX_DMA_EN),
RAMIPS_PDMA_GLO_CFG);
+
+ /* disable all interrupts in the hw */
+ ramips_fe_wr(0, RAMIPS_FE_INT_ENABLE);
+
free_irq(dev->irq, dev);
netif_stop_queue(dev);
tasklet_kill(&priv->tx_housekeeping_tasklet);