ramips: Allow ethernet interface to be taken down and up again
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 5 Oct 2010 14:10:34 +0000 (14:10 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 5 Oct 2010 14:10:34 +0000 (14:10 +0000)
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

target/linux/ramips/files/drivers/net/ramips.c

index a979fe0..fb6e6e8 100644 (file)
@@ -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);