[brcm63xx] add preliminary support for 3.6 kernel
[openwrt/svn-archive/archive.git] / target / linux / brcm63xx / patches-3.6 / 416-bcm63xx_enet-reset-port-link-state-in-bcm_enetsw_ope.patch
1 From 6d5c5bb13db3fd8e3dd0b82742b3957f41a4a3ac Mon Sep 17 00:00:00 2001
2 From: Jonas Gorski <jonas.gorski@gmail.com>
3 Date: Thu, 24 May 2012 20:38:58 +0200
4 Subject: [PATCH] bcm63xx_enet: reset port link state in bcm_enetsw_open
5
6 bcm_enetsw_open disables all ports, but does not reset their link state.
7 This results in connected ports staying disabled after a ifdown/ifup
8 cycle, since bcm_enetsw_phy_poll only enables them if their current state
9 is different from the stored link state.
10
11 Fix this by also resetting the port link state.
12
13 Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
14 ---
15 drivers/net/ethernet/broadcom/bcm63xx_enet.c | 2 ++
16 1 file changed, 2 insertions(+)
17
18 --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
19 +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
20 @@ -2213,6 +2213,8 @@ static int bcm_enetsw_open(struct net_de
21 enetsw_writeb(priv, ENETSW_PTCTRL_RXDIS_MASK |
22 ENETSW_PTCTRL_TXDIS_MASK,
23 ENETSW_PTCTRL_REG(i));
24 +
25 + priv->sw_port_link[i] = 0;
26 }
27
28 /* reset mib */