bgmac: support Ethernet device on BCM47094 SoC
authorRafał Miłecki <zajec5@gmail.com>
Mon, 22 Feb 2016 21:51:13 +0000 (22:51 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Feb 2016 20:33:58 +0000 (15:33 -0500)
It needs very similar workarounds to the one on BCM4707. It was tested
on D-Link DIR-885L home router.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bgmac.c

index 230f8e6209e57f22e1c5fc4c3cf3a6ade4aca95f..99b30a952b38736a825efc5149aa9027f6fae64d 100644 (file)
@@ -30,6 +30,7 @@ static inline bool bgmac_is_bcm4707_family(struct bgmac *bgmac)
 {
        switch (bgmac->core->bus->chipinfo.id) {
        case BCMA_CHIP_ID_BCM4707:
+       case BCMA_CHIP_ID_BCM47094:
        case BCMA_CHIP_ID_BCM53018:
                return true;
        default:
@@ -1052,8 +1053,9 @@ static void bgmac_chip_reset(struct bgmac *bgmac)
            (ci->id == BCMA_CHIP_ID_BCM53572 && ci->pkg == BCMA_PKG_ID_BCM47188))
                iost &= ~BGMAC_BCMA_IOST_ATTACHED;
 
-       /* 3GMAC: for BCM4707, only do core reset at bgmac_probe() */
-       if (ci->id != BCMA_CHIP_ID_BCM4707) {
+       /* 3GMAC: for BCM4707 & BCM47094, only do core reset at bgmac_probe() */
+       if (ci->id != BCMA_CHIP_ID_BCM4707 &&
+           ci->id != BCMA_CHIP_ID_BCM47094) {
                flags = 0;
                if (iost & BGMAC_BCMA_IOST_ATTACHED) {
                        flags = BGMAC_BCMA_IOCTL_SW_CLKEN;