aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2016-05-08 21:09:18 +0000
committerLuka Perkov <luka@openwrt.org>2016-06-19 19:56:13 +0200
commitcd903cf340a0e080586d50adde61f82eadc907d3 (patch)
tree140d2458b3005e1b70de03e64c2923488e2d4553 /target
parentfb582172ad8291c7cd4d015f1606b1f31fd4485a (diff)
downloadupstream-cd903cf340a0e080586d50adde61f82eadc907d3.tar.gz
upstream-cd903cf340a0e080586d50adde61f82eadc907d3.tar.bz2
upstream-cd903cf340a0e080586d50adde61f82eadc907d3.zip
kernel: use backported versions of bgmac patches
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49298 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/generic/patches-3.18/077-14-bgmac-reset-all-4-GMAC-cores-on-init.patch28
-rw-r--r--target/linux/generic/patches-3.18/078-01-bgmac-support-up-to-3-cores-devices-on-a-bus.patch (renamed from target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch)19
-rw-r--r--target/linux/generic/patches-3.18/078-02-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch (renamed from target/linux/generic/patches-3.18/078-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch)2
-rw-r--r--target/linux/generic/patches-3.18/078-03-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch (renamed from target/linux/generic/patches-3.18/079-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch)0
-rw-r--r--target/linux/generic/patches-3.18/078-04-bgmac-reset-enable-Ethernet-core-before-using-it.patch33
-rw-r--r--target/linux/generic/patches-3.18/078-05-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch (renamed from target/linux/generic/patches-3.18/077-13-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch)16
-rw-r--r--target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch4
7 files changed, 61 insertions, 41 deletions
diff --git a/target/linux/generic/patches-3.18/077-14-bgmac-reset-all-4-GMAC-cores-on-init.patch b/target/linux/generic/patches-3.18/077-14-bgmac-reset-all-4-GMAC-cores-on-init.patch
deleted file mode 100644
index 2a913a60e7..0000000000
--- a/target/linux/generic/patches-3.18/077-14-bgmac-reset-all-4-GMAC-cores-on-init.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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);
- }
- }
-
diff --git a/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch b/target/linux/generic/patches-3.18/078-01-bgmac-support-up-to-3-cores-devices-on-a-bus.patch
index 36894fec24..d093e89dea 100644
--- a/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch
+++ b/target/linux/generic/patches-3.18/078-01-bgmac-support-up-to-3-cores-devices-on-a-bus.patch
@@ -1,23 +1,26 @@
-From f5d5afc0b1402aae0f6a2350e43241603dbaff1e Mon Sep 17 00:00:00 2001
+From 538e4563198cd3d1a8e74c47fee3e49dc93e4a95 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Wed, 13 May 2015 10:46:47 +0200
-Subject: [PATCH] bgmac: add support for the 3rd bus core (device)
+Date: Wed, 26 Aug 2015 17:53:45 +0200
+Subject: [PATCH] bgmac: support up to 3 cores (devices) on a bus
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-So far we were supporting up to 2 cores but recent devices (e.g. Netgear
-R8000) may use 3rd as well. Lower ones (1st, 2nd) are usually used for
-some offloading then.
+Broadcom buses may have more than 1 Ethernet device. This is used e.g.
+to have few interfaces connected to different switch ports. So far we
+saw chipsets with only 2 devices (e.g. BCM4706) but recent ones have
+up to 3 (e.g. Netgear R8000 uses 3rd interface for most of switch
+traffic, lower interfaces are for some kind of offloading).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/ethernet/broadcom/bgmac.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
-@@ -1566,11 +1566,20 @@ static int bgmac_probe(struct bcma_devic
+@@ -1549,11 +1549,20 @@ static int bgmac_probe(struct bcma_devic
struct net_device *net_dev;
struct bgmac *bgmac;
struct ssb_sprom *sprom = &core->bus->sprom;
@@ -41,7 +44,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
pr_err("Unsupported core_unit %d\n", core->core_unit);
return -ENOTSUPP;
}
-@@ -1605,8 +1614,17 @@ static int bgmac_probe(struct bcma_devic
+@@ -1588,8 +1597,17 @@ static int bgmac_probe(struct bcma_devic
}
bgmac->cmn = core->bus->drv_gmac_cmn.core;
diff --git a/target/linux/generic/patches-3.18/078-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch b/target/linux/generic/patches-3.18/078-02-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch
index 8e794180ac..63010c1450 100644
--- a/target/linux/generic/patches-3.18/078-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch
+++ b/target/linux/generic/patches-3.18/078-02-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch
@@ -94,7 +94,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct net_device *net_dev;
struct bgmac *bgmac;
struct ssb_sprom *sprom = &core->bus->sprom;
-@@ -1608,8 +1611,7 @@ static int bgmac_probe(struct bcma_devic
+@@ -1626,8 +1629,7 @@ static int bgmac_probe(struct bcma_devic
bgmac_chip_reset(bgmac);
/* For Northstar, we have to take all GMAC core out of reset */
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/078-03-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch
index 88db7b2fff..88db7b2fff 100644
--- a/target/linux/generic/patches-3.18/079-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch
+++ b/target/linux/generic/patches-3.18/078-03-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch
diff --git a/target/linux/generic/patches-3.18/078-04-bgmac-reset-enable-Ethernet-core-before-using-it.patch b/target/linux/generic/patches-3.18/078-04-bgmac-reset-enable-Ethernet-core-before-using-it.patch
new file mode 100644
index 0000000000..8dac985a72
--- /dev/null
+++ b/target/linux/generic/patches-3.18/078-04-bgmac-reset-enable-Ethernet-core-before-using-it.patch
@@ -0,0 +1,33 @@
+From b4dfd8e92956b396d3438212bc9a0be6267b8b34 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Tue, 12 Apr 2016 13:30:45 +0200
+Subject: [PATCH] bgmac: reset & enable Ethernet core before using it
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes Ethernet on D-Link DIR-885L with BCM47094 SoC. Felix reported
+similar fix was needed for his BCM4709 device (Buffalo WXR-1900DHP?).
+I tested this for regressions on BCM4706, BCM4708A0 and BCM47081A0.
+
+Cc: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -1578,6 +1578,11 @@ static int bgmac_probe(struct bcma_devic
+ dev_warn(&core->dev, "Using random MAC: %pM\n", mac);
+ }
+
++ /* This (reset &) enable is not preset in specs or reference driver but
++ * Broadcom does it in arch PCI code when enabling fake PCI device.
++ */
++ bcma_core_enable(core, 0);
++
+ /* Allocation and references */
+ net_dev = alloc_etherdev(sizeof(*bgmac));
+ if (!net_dev)
diff --git a/target/linux/generic/patches-3.18/077-13-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch b/target/linux/generic/patches-3.18/078-05-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch
index a3d9fd6cd9..9e5a37980a 100644
--- a/target/linux/generic/patches-3.18/077-13-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch
+++ b/target/linux/generic/patches-3.18/078-05-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch
@@ -1,11 +1,23 @@
+From c02bc350f9dbce7d637c394a6e1c4d29dc5b28b2 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
-Date: Mon, 13 Apr 2015 15:54:04 +0200
+Date: Tue, 12 Apr 2016 18:27:29 +0200
Subject: [PATCH] bgmac: fix MAC soft-reset bit for corerev > 4
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
-Only core revisions older than 4 use BGMAC_CMDCFG_SR_REV0
+Only core revisions older than 4 use BGMAC_CMDCFG_SR_REV0. This mainly
+fixes support for BCM4708A0KF SoCs with Ethernet core rev 5 (it means
+only some devices as most of BCM4708A0KF-s got core rev 4).
+This was tested for regressions on BCM47094 which doesn't seem to care
+which bit gets used.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
---
+ drivers/net/ethernet/broadcom/bgmac.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
--- a/drivers/net/ethernet/broadcom/bgmac.h
+++ b/drivers/net/ethernet/broadcom/bgmac.h
diff --git a/target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch b/target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch
index 559731300b..9f39c8000e 100644
--- a/target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch
+++ b/target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch
@@ -30,7 +30,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
/**************************************************
* BCMA bus ops
**************************************************/
-@@ -1668,6 +1680,14 @@ static int bgmac_probe(struct bcma_devic
+@@ -1688,6 +1700,14 @@ static int bgmac_probe(struct bcma_devic
net_dev->hw_features = net_dev->features;
net_dev->vlan_features = net_dev->features;
@@ -45,7 +45,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
err = register_netdev(bgmac->net_dev);
if (err) {
bgmac_err(bgmac, "Cannot register net device\n");
-@@ -1694,6 +1714,10 @@ static void bgmac_remove(struct bcma_dev
+@@ -1714,6 +1734,10 @@ static void bgmac_remove(struct bcma_dev
{
struct bgmac *bgmac = bcma_get_drvdata(core);