| From 6a391e7bf26c04a6df5f77290e1146941d210d49 Mon Sep 17 00:00:00 2001 |
| From: Rafał Miłecki <zajec5@gmail.com> |
| Date: Sun, 15 Sep 2013 00:22:47 +0200 |
| Subject: bgmac: fix internal switch initialization |
| |
| From: Rafał Miłecki <zajec5@gmail.com> |
| |
| commit 6a391e7bf26c04a6df5f77290e1146941d210d49 upstream. |
| |
| 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> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/ethernet/broadcom/bgmac.c | 2 +- |
| drivers/net/ethernet/broadcom/bgmac.h | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/broadcom/bgmac.c |
| +++ b/drivers/net/ethernet/broadcom/bgmac.c |
| @@ -908,7 +908,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 |
| @@ -333,7 +333,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 |