kernel: use upstream fixes for bgmac and BCM4709(4)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 49167
This commit is contained in:
parent
d30766c986
commit
490861a3f5
6 changed files with 86 additions and 60 deletions
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
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>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
|
+++ b/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
|
@@ -1564,6 +1564,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)
|
|
@ -1,10 +1,20 @@
|
||||||
|
From c02bc350f9dbce7d637c394a6e1c4d29dc5b28b2 Mon Sep 17 00:00:00 2001
|
||||||
From: Felix Fietkau <nbd@openwrt.org>
|
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
|
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: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
---
|
---
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
|
@ -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
|
|
||||||
@@ -1645,8 +1645,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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
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>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- 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)
|
|
@ -1,10 +1,20 @@
|
||||||
|
From c02bc350f9dbce7d637c394a6e1c4d29dc5b28b2 Mon Sep 17 00:00:00 2001
|
||||||
From: Felix Fietkau <nbd@openwrt.org>
|
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
|
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: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
---
|
---
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
Loading…
Reference in a new issue