openwrt/target/linux/generic/patches-4.1/072-14-bgmac-reset-all-4-GMAC-cores-on-init.patch
Jonas Gorski a0c49ef46f generic: add linux 4.1 support
Boot tested: http://pastebin.com/L6aAb9xj

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[jogo:
  update to 4.1 final
  add patches added since submission
  delete patches applied in later rcs
  restore commit messages in 220-gc-sections and 304-mips_disable_fpu
  fix 050-backport_netfilter_rtcache to match new API
  update inlined dma ops with upstream changes
  add missing config symbols
  enabled CONFIG_MULTIUSER
  update kmod defintions for 4.1
]
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46112
2015-06-22 12:27:59 +00:00

29 lines
841 B
Diff

From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 13 Apr 2015 15:56:26 +0200
Subject: [PATCH] bgmac: reset all 4 GMAC cores on init
On a BCM4709 based device, I found that GMAC cores may be enabled at
probe time, but only become usable after a full reset.
Disable cores before re-enabling them to ensure that they are properly
reset.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -1623,8 +1623,11 @@ static int bgmac_probe(struct bcma_devic
ns_core = bcma_find_core_unit(core->bus,
BCMA_CORE_MAC_GBIT,
ns_gmac);
- if (ns_core && !bcma_core_is_enabled(ns_core))
- bcma_core_enable(ns_core, 0);
+ if (!ns_core)
+ continue;
+
+ bcma_core_disable(ns_core, 0);
+ bcma_core_enable(ns_core, 0);
}
}