aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/drivers
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
commite3647801e9ef6f5267e1ef78302df6783d707981 (patch)
tree2d650bbefd9d19fb956b7741586fde459126c5ee /target/linux/ramips/files/drivers
parent5eed1ea99ab6886ed0328c36df78b1549d6834ad (diff)
downloadupstream-e3647801e9ef6f5267e1ef78302df6783d707981.tar.gz
upstream-e3647801e9ef6f5267e1ef78302df6783d707981.tar.bz2
upstream-e3647801e9ef6f5267e1ef78302df6783d707981.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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23243 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips/files/drivers')
-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);