kernel: support bgmac on BCM47094
[15.05/openwrt.git] / target / linux / generic / patches-3.18 / 079-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch
diff --git a/target/linux/generic/patches-3.18/079-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch b/target/linux/generic/patches-3.18/079-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch
new file mode 100644 (file)
index 0000000..88db7b2
--- /dev/null
@@ -0,0 +1,39 @@
+From 9e4e6206c67ae11d68fc96882256f37c237087d4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Mon, 22 Feb 2016 22:51:13 +0100
+Subject: [PATCH] bgmac: support Ethernet device on BCM47094 SoC
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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 | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -30,6 +30,7 @@ static inline bool bgmac_is_bcm4707_fami
+ {
+       switch (bgmac->core->bus->chipinfo.id) {
+       case BCMA_CHIP_ID_BCM4707:
++      case BCMA_CHIP_ID_BCM47094:
+       case BCMA_CHIP_ID_BCM53018:
+               return true;
+       default:
+@@ -1047,8 +1048,9 @@ static void bgmac_chip_reset(struct bgma
+           (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;