diff options
author | Hauke Mehrtens <hauke@openwrt.org> | 2013-09-25 21:47:25 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@openwrt.org> | 2013-09-25 21:47:25 +0000 |
commit | 426c3a85c692e507a3d97f85aa76382b65a158a3 (patch) | |
tree | bf84de58041c3f89dbc780ffcdee8f9baf9b7388 /target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch | |
parent | 8e9dab5d1c929047beb61684b5bd036fa38b6012 (diff) | |
download | master-187ad058-426c3a85c692e507a3d97f85aa76382b65a158a3.tar.gz master-187ad058-426c3a85c692e507a3d97f85aa76382b65a158a3.tar.bz2 master-187ad058-426c3a85c692e507a3d97f85aa76382b65a158a3.zip |
bcm53xx: update bgmac driver
Update the bgmac driver with the patches already used for bcm47xx target.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38199 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch b/target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch new file mode 100644 index 0000000000..a5ace95636 --- /dev/null +++ b/target/linux/bcm53xx/patches-3.10/210-bgmac_fix_internal_switch_initialization.patch @@ -0,0 +1,33 @@ +bgmac: fix internal switch initialization + +Some devices (BCM4749, BCM5357, BCM53572) have internal switch that +requires initialization. We already have code for this, but because +of the typo in code it was never working. This resulted in network not +working for some routers and possibility of soft-bricking them. + +Use correct bit for switch initialization and fix typo in the define. + +Signed-off-by: Rafał Miłecki <zajec5@gmail.com> + +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -931,7 +931,7 @@ static void bgmac_chip_reset(struct bgma + struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; + u8 et_swtype = 0; + u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | +- BGMAC_CHIPCTL_1_IF_TYPE_RMII; ++ BGMAC_CHIPCTL_1_IF_TYPE_MII; + char buf[2]; + + if (bcm47xx_nvram_getenv("et_swtype", buf, 1) > 0) { +--- a/drivers/net/ethernet/broadcom/bgmac.h ++++ b/drivers/net/ethernet/broadcom/bgmac.h +@@ -334,7 +334,7 @@ + + #define BGMAC_CHIPCTL_1_IF_TYPE_MASK 0x00000030 + #define BGMAC_CHIPCTL_1_IF_TYPE_RMII 0x00000000 +-#define BGMAC_CHIPCTL_1_IF_TYPE_MI 0x00000010 ++#define BGMAC_CHIPCTL_1_IF_TYPE_MII 0x00000010 + #define BGMAC_CHIPCTL_1_IF_TYPE_RGMII 0x00000020 + #define BGMAC_CHIPCTL_1_SW_TYPE_MASK 0x000000C0 + #define BGMAC_CHIPCTL_1_SW_TYPE_EPHY 0x00000000 |