Commit 6aba04ee authored by Jonas Gorski's avatar Jonas Gorski Committed by Jakub Kicinski

Revert "net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname"

This reverts commit 3710e809.

Since idm_base and nicpm_base are still optional resources not present
on all platforms, this breaks the driver for everything except Northstar
2 (which has both).

The same change was already reverted once with 755f5738 ("net:
broadcom: fix a mistake about ioremap resource").

So let's do it again.

Fixes: 3710e809 ("net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname")
Signed-off-by: default avatarJonas Gorski <jonas.gorski@gmail.com>
[florian: Added comments to explain the resources are optional]
Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220216184634.2032460-1-f.fainelli@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 35a79e64
...@@ -172,6 +172,7 @@ static int bgmac_probe(struct platform_device *pdev) ...@@ -172,6 +172,7 @@ static int bgmac_probe(struct platform_device *pdev)
{ {
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
struct bgmac *bgmac; struct bgmac *bgmac;
struct resource *regs;
int ret; int ret;
bgmac = bgmac_alloc(&pdev->dev); bgmac = bgmac_alloc(&pdev->dev);
...@@ -208,15 +209,23 @@ static int bgmac_probe(struct platform_device *pdev) ...@@ -208,15 +209,23 @@ static int bgmac_probe(struct platform_device *pdev)
if (IS_ERR(bgmac->plat.base)) if (IS_ERR(bgmac->plat.base))
return PTR_ERR(bgmac->plat.base); return PTR_ERR(bgmac->plat.base);
bgmac->plat.idm_base = devm_platform_ioremap_resource_byname(pdev, "idm_base"); /* The idm_base resource is optional for some platforms */
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "idm_base");
if (regs) {
bgmac->plat.idm_base = devm_ioremap_resource(&pdev->dev, regs);
if (IS_ERR(bgmac->plat.idm_base)) if (IS_ERR(bgmac->plat.idm_base))
return PTR_ERR(bgmac->plat.idm_base); return PTR_ERR(bgmac->plat.idm_base);
else
bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK; bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK;
}
bgmac->plat.nicpm_base = devm_platform_ioremap_resource_byname(pdev, "nicpm_base"); /* The nicpm_base resource is optional for some platforms */
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nicpm_base");
if (regs) {
bgmac->plat.nicpm_base = devm_ioremap_resource(&pdev->dev,
regs);
if (IS_ERR(bgmac->plat.nicpm_base)) if (IS_ERR(bgmac->plat.nicpm_base))
return PTR_ERR(bgmac->plat.nicpm_base); return PTR_ERR(bgmac->plat.nicpm_base);
}
bgmac->read = platform_bgmac_read; bgmac->read = platform_bgmac_read;
bgmac->write = platform_bgmac_write; bgmac->write = platform_bgmac_write;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment