|
|
@@ -0,0 +1,28 @@
|
|
|
+From 6d5c5bb13db3fd8e3dd0b82742b3957f41a4a3ac Mon Sep 17 00:00:00 2001
|
|
|
+From: Jonas Gorski <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+---
|
|
|
+ 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 */
|