kernel: bgmac: backport patch switching to feature_flags

It was needed upstream to avoid bcma references in the main code. To
match this new code our patch adding SRAB was also updated.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki
2016-08-17 07:45:48 +02:00
parent df4f41261c
commit 533d16822c
3 changed files with 451 additions and 5 deletions

View File

@@ -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;