1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-01 19:06:16 +02:00
openwrt-xburst/target/linux/brcm63xx/patches-3.3/431-bcm63xx_enet-reset-port-link-state-in-bcm_enetsw_ope.patch
jogo 5a482fc8b3 bcm63xx: fix port state after network down
bcm_enetsw_probe did not properly reset port states, resulting in
connected ports staying disabled after bringing up the interface the
second time.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31881 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 13:22:40 +00:00

29 lines
1020 B
Diff

From 6d5c5bb13db3fd8e3dd0b82742b3957f41a4a3ac Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Thu, 24 May 2012 20:38:58 +0200
Subject: [PATCH] bcm63xx_enet: reset port link state in bcm_enetsw_open
bcm_enetsw_open disables all ports, but does not reset their link state.
This results in connected ports staying disabled after a ifdown/ifup
cycle, since bcm_enetsw_phy_poll only enables them if their current state
is different from the stored link state.
Fix this by also resetting the port link state.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -2214,6 +2214,8 @@ static int bcm_enetsw_open(struct net_de
enetsw_writeb(priv, ENETSW_PTCTRL_RXDIS_MASK |
ENETSW_PTCTRL_TXDIS_MASK,
ENETSW_PTCTRL_REG(i));
+
+ priv->sw_port_link[i] = 0;
}
/* reset mib */