brcm47xx: add detection for Linksys E900 V1
[oweals/openwrt.git] / target / linux / brcm47xx / patches-3.10 / 710-bgmac_fix_internal_switch_initialization.patch
1 bgmac: fix internal switch initialization
2
3 Some devices (BCM4749, BCM5357, BCM53572) have internal switch that
4 requires initialization. We already have code for this, but because
5 of the typo in code it was never working. This resulted in network not
6 working for some routers and possibility of soft-bricking them.
7
8 Use correct bit for switch initialization and fix typo in the define.
9
10 Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
11
12 --- a/drivers/net/ethernet/broadcom/bgmac.c
13 +++ b/drivers/net/ethernet/broadcom/bgmac.c
14 @@ -908,7 +908,7 @@ static void bgmac_chip_reset(struct bgma
15                 struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc;
16                 u8 et_swtype = 0;
17                 u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY |
18 -                            BGMAC_CHIPCTL_1_IF_TYPE_RMII;
19 +                            BGMAC_CHIPCTL_1_IF_TYPE_MII;
20                 char buf[2];
21  
22                 if (bcm47xx_nvram_getenv("et_swtype", buf, 1) > 0) {
23 --- a/drivers/net/ethernet/broadcom/bgmac.h
24 +++ b/drivers/net/ethernet/broadcom/bgmac.h
25 @@ -333,7 +333,7 @@
26  
27  #define BGMAC_CHIPCTL_1_IF_TYPE_MASK           0x00000030
28  #define BGMAC_CHIPCTL_1_IF_TYPE_RMII           0x00000000
29 -#define BGMAC_CHIPCTL_1_IF_TYPE_MI             0x00000010
30 +#define BGMAC_CHIPCTL_1_IF_TYPE_MII            0x00000010
31  #define BGMAC_CHIPCTL_1_IF_TYPE_RGMII          0x00000020
32  #define BGMAC_CHIPCTL_1_SW_TYPE_MASK           0x000000C0
33  #define BGMAC_CHIPCTL_1_SW_TYPE_EPHY           0x00000000