summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch')
-rw-r--r--target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch26
1 files changed, 21 insertions, 5 deletions
diff --git a/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch b/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch
index 29e7892662..13d3305dec 100644
--- a/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch
+++ b/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch
@@ -12,7 +12,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#include <linux/bcm47xx_nvram.h>
static const struct bcma_device_id bgmac_bcma_tbl[] = {
-@@ -1403,6 +1404,17 @@ static const struct ethtool_ops bgmac_et
+@@ -1408,6 +1409,17 @@ static const struct ethtool_ops bgmac_et
.get_drvinfo = bgmac_get_drvinfo,
};
@@ -30,11 +30,19 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
/**************************************************
* MII
**************************************************/
-@@ -1630,6 +1642,14 @@ static int bgmac_probe(struct bcma_devic
+@@ -1656,6 +1668,7 @@ static int bgmac_probe(struct bcma_devic
+ bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
+ bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
+ bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
++ bgmac->feature_flags |= BGMAC_FEAT_SRAB;
+ break;
+ default:
+ bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
+@@ -1703,6 +1716,14 @@ static int bgmac_probe(struct bcma_devic
net_dev->hw_features = net_dev->features;
net_dev->vlan_features = net_dev->features;
-+ if (bgmac_is_bcm4707_family(bgmac) && !bgmac_b53_pdata.regs) {
++ if ((bgmac->feature_flags & BGMAC_FEAT_SRAB) && !bgmac_b53_pdata.regs) {
+ bgmac_b53_pdata.regs = ioremap_nocache(0x18007000, 0x1000);
+
+ err = platform_device_register(&bgmac_b53_dev);
@@ -45,7 +53,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
err = register_netdev(bgmac->net_dev);
if (err) {
dev_err(bgmac->dev, "Cannot register net device\n");
-@@ -1657,6 +1677,10 @@ static void bgmac_remove(struct bcma_dev
+@@ -1730,6 +1751,10 @@ static void bgmac_remove(struct bcma_dev
{
struct bgmac *bgmac = bcma_get_drvdata(core);
@@ -58,7 +66,15 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
bcma_mdio_mii_unregister(bgmac->mii_bus);
--- a/drivers/net/ethernet/broadcom/bgmac.h
+++ b/drivers/net/ethernet/broadcom/bgmac.h
-@@ -454,6 +454,9 @@ struct bgmac {
+@@ -392,6 +392,7 @@
+ #define BGMAC_FEAT_NO_CLR_MIB BIT(13)
+ #define BGMAC_FEAT_FORCE_SPEED_2500 BIT(14)
+ #define BGMAC_FEAT_CMDCFG_SR_REV4 BIT(15)
++#define BGMAC_FEAT_SRAB BIT(16)
+
+ struct bgmac_slot_info {
+ union {
+@@ -473,6 +474,9 @@ struct bgmac {
bool has_robosw;
bool loopback;