From 1f3cdb86343af98e662553dce048789baae26ba0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 11 Feb 2015 18:11:22 +0000 Subject: [PATCH] kernel: fix bgmac check for chip ID MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki SVN-Revision: 44411 --- ...-initialization-on-Northstar-SoCs-co.patch | 46 +++++++++++++++++++ .../773-bgmac-add-srab-switch.patch | 8 ++-- ...-initialization-on-Northstar-SoCs-co.patch | 46 +++++++++++++++++++ .../773-bgmac-add-srab-switch.patch | 8 ++-- ...-initialization-on-Northstar-SoCs-co.patch | 46 +++++++++++++++++++ .../773-bgmac-add-srab-switch.patch | 8 ++-- 6 files changed, 150 insertions(+), 12 deletions(-) create mode 100644 target/linux/generic/patches-3.14/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch create mode 100644 target/linux/generic/patches-3.18/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch create mode 100644 target/linux/generic/patches-3.19/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch diff --git a/target/linux/generic/patches-3.14/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch b/target/linux/generic/patches-3.14/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch new file mode 100644 index 00000000000..0043b4c84fa --- /dev/null +++ b/target/linux/generic/patches-3.14/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch @@ -0,0 +1,46 @@ +From b053c5ad4d99d8f025efadd5c8b4bd84ea06eb6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 11 Feb 2015 17:55:32 +0100 +Subject: [PATCH FIX] bgmac: fix device initialization on Northstar SoCs + (condition typo) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On Northstar (Broadcom's ARM architecture) we need to manually enable +all cores. Code for that is already in place, but the condition for it +was wrong. + +Signed-off-by: Rafał Miłecki +--- +Can we have it for 3.20, please? +--- + drivers/net/ethernet/broadcom/bgmac.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c +index 3007d95..728373b 100644 +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct bgmac *bgmac) + /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */ + static int bgmac_probe(struct bcma_device *core) + { ++ struct bcma_chipinfo *ci = &core->bus->chipinfo; + struct net_device *net_dev; + struct bgmac *bgmac; + struct ssb_sprom *sprom = &core->bus->sprom; +@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_device *core) + bgmac_chip_reset(bgmac); + + /* For Northstar, we have to take all GMAC core out of reset */ +- if (core->id.id == BCMA_CHIP_ID_BCM4707 || +- core->id.id == BCMA_CHIP_ID_BCM53018) { ++ if (ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) { + struct bcma_device *ns_core; + int ns_gmac; + +-- +1.8.4.5 + diff --git a/target/linux/generic/patches-3.14/773-bgmac-add-srab-switch.patch b/target/linux/generic/patches-3.14/773-bgmac-add-srab-switch.patch index bf3ab93830f..ef12cac9bff 100644 --- a/target/linux/generic/patches-3.14/773-bgmac-add-srab-switch.patch +++ b/target/linux/generic/patches-3.14/773-bgmac-add-srab-switch.patch @@ -30,12 +30,12 @@ Signed-off-by: Hauke Mehrtens /************************************************** * BCMA bus ops **************************************************/ -@@ -1523,6 +1535,16 @@ static int bgmac_probe(struct bcma_devic +@@ -1524,6 +1536,16 @@ static int bgmac_probe(struct bcma_devic goto err_dma_free; } -+ if (core->id.id != BCMA_CHIP_ID_BCM4707 && -+ core->id.id != BCMA_CHIP_ID_BCM53018 && ++ if ((ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) && + !bgmac_b53_pdata.regs) { + bgmac_b53_pdata.regs = ioremap_nocache(0x18007000, 0x1000); + @@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens err = register_netdev(bgmac->net_dev); if (err) { bgmac_err(bgmac, "Cannot register net device\n"); -@@ -1549,6 +1571,10 @@ static void bgmac_remove(struct bcma_dev +@@ -1550,6 +1572,10 @@ static void bgmac_remove(struct bcma_dev { struct bgmac *bgmac = bcma_get_drvdata(core); diff --git a/target/linux/generic/patches-3.18/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch b/target/linux/generic/patches-3.18/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch new file mode 100644 index 00000000000..0043b4c84fa --- /dev/null +++ b/target/linux/generic/patches-3.18/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch @@ -0,0 +1,46 @@ +From b053c5ad4d99d8f025efadd5c8b4bd84ea06eb6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 11 Feb 2015 17:55:32 +0100 +Subject: [PATCH FIX] bgmac: fix device initialization on Northstar SoCs + (condition typo) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On Northstar (Broadcom's ARM architecture) we need to manually enable +all cores. Code for that is already in place, but the condition for it +was wrong. + +Signed-off-by: Rafał Miłecki +--- +Can we have it for 3.20, please? +--- + drivers/net/ethernet/broadcom/bgmac.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c +index 3007d95..728373b 100644 +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct bgmac *bgmac) + /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */ + static int bgmac_probe(struct bcma_device *core) + { ++ struct bcma_chipinfo *ci = &core->bus->chipinfo; + struct net_device *net_dev; + struct bgmac *bgmac; + struct ssb_sprom *sprom = &core->bus->sprom; +@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_device *core) + bgmac_chip_reset(bgmac); + + /* For Northstar, we have to take all GMAC core out of reset */ +- if (core->id.id == BCMA_CHIP_ID_BCM4707 || +- core->id.id == BCMA_CHIP_ID_BCM53018) { ++ if (ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) { + struct bcma_device *ns_core; + int ns_gmac; + +-- +1.8.4.5 + 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 bf3ab93830f..ef12cac9bff 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,12 +30,12 @@ Signed-off-by: Hauke Mehrtens /************************************************** * BCMA bus ops **************************************************/ -@@ -1523,6 +1535,16 @@ static int bgmac_probe(struct bcma_devic +@@ -1524,6 +1536,16 @@ static int bgmac_probe(struct bcma_devic goto err_dma_free; } -+ if (core->id.id != BCMA_CHIP_ID_BCM4707 && -+ core->id.id != BCMA_CHIP_ID_BCM53018 && ++ if ((ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) && + !bgmac_b53_pdata.regs) { + bgmac_b53_pdata.regs = ioremap_nocache(0x18007000, 0x1000); + @@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens err = register_netdev(bgmac->net_dev); if (err) { bgmac_err(bgmac, "Cannot register net device\n"); -@@ -1549,6 +1571,10 @@ static void bgmac_remove(struct bcma_dev +@@ -1550,6 +1572,10 @@ static void bgmac_remove(struct bcma_dev { struct bgmac *bgmac = bcma_get_drvdata(core); diff --git a/target/linux/generic/patches-3.19/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch b/target/linux/generic/patches-3.19/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch new file mode 100644 index 00000000000..0043b4c84fa --- /dev/null +++ b/target/linux/generic/patches-3.19/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch @@ -0,0 +1,46 @@ +From b053c5ad4d99d8f025efadd5c8b4bd84ea06eb6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 11 Feb 2015 17:55:32 +0100 +Subject: [PATCH FIX] bgmac: fix device initialization on Northstar SoCs + (condition typo) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On Northstar (Broadcom's ARM architecture) we need to manually enable +all cores. Code for that is already in place, but the condition for it +was wrong. + +Signed-off-by: Rafał Miłecki +--- +Can we have it for 3.20, please? +--- + drivers/net/ethernet/broadcom/bgmac.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c +index 3007d95..728373b 100644 +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct bgmac *bgmac) + /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */ + static int bgmac_probe(struct bcma_device *core) + { ++ struct bcma_chipinfo *ci = &core->bus->chipinfo; + struct net_device *net_dev; + struct bgmac *bgmac; + struct ssb_sprom *sprom = &core->bus->sprom; +@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_device *core) + bgmac_chip_reset(bgmac); + + /* For Northstar, we have to take all GMAC core out of reset */ +- if (core->id.id == BCMA_CHIP_ID_BCM4707 || +- core->id.id == BCMA_CHIP_ID_BCM53018) { ++ if (ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) { + struct bcma_device *ns_core; + int ns_gmac; + +-- +1.8.4.5 + diff --git a/target/linux/generic/patches-3.19/773-bgmac-add-srab-switch.patch b/target/linux/generic/patches-3.19/773-bgmac-add-srab-switch.patch index bf3ab93830f..ef12cac9bff 100644 --- a/target/linux/generic/patches-3.19/773-bgmac-add-srab-switch.patch +++ b/target/linux/generic/patches-3.19/773-bgmac-add-srab-switch.patch @@ -30,12 +30,12 @@ Signed-off-by: Hauke Mehrtens /************************************************** * BCMA bus ops **************************************************/ -@@ -1523,6 +1535,16 @@ static int bgmac_probe(struct bcma_devic +@@ -1524,6 +1536,16 @@ static int bgmac_probe(struct bcma_devic goto err_dma_free; } -+ if (core->id.id != BCMA_CHIP_ID_BCM4707 && -+ core->id.id != BCMA_CHIP_ID_BCM53018 && ++ if ((ci->id == BCMA_CHIP_ID_BCM4707 || ++ ci->id == BCMA_CHIP_ID_BCM53018) && + !bgmac_b53_pdata.regs) { + bgmac_b53_pdata.regs = ioremap_nocache(0x18007000, 0x1000); + @@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens err = register_netdev(bgmac->net_dev); if (err) { bgmac_err(bgmac, "Cannot register net device\n"); -@@ -1549,6 +1571,10 @@ static void bgmac_remove(struct bcma_dev +@@ -1550,6 +1572,10 @@ static void bgmac_remove(struct bcma_dev { struct bgmac *bgmac = bcma_get_drvdata(core); -- 2.30.2