Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a391e7b authored by Rafał Miłecki's avatar Rafał Miłecki Committed by David S. Miller
Browse files

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: default avatarRafał Miłecki <zajec5@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7a3a6212
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -908,7 +908,7 @@ static void bgmac_chip_reset(struct bgmac *bgmac)
		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) {
+1 −1
Original line number Diff line number Diff line
@@ -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