Skip to content

Commit 6aba04e

Browse files
KanjiMonsterkuba-moo
authored andcommitted
Revert "net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname"
This reverts commit 3710e80. 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 755f573 ("net: broadcom: fix a mistake about ioremap resource"). So let's do it again. Fixes: 3710e80 ("net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> [florian: Added comments to explain the resources are optional] Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://lore.kernel.org/r/20220216184634.2032460-1-f.fainelli@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 35a79e6 commit 6aba04e

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

drivers/net/ethernet/broadcom/bgmac-platform.c

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ static int bgmac_probe(struct platform_device *pdev)
172172
{
173173
struct device_node *np = pdev->dev.of_node;
174174
struct bgmac *bgmac;
175+
struct resource *regs;
175176
int ret;
176177

177178
bgmac = bgmac_alloc(&pdev->dev);
@@ -208,15 +209,23 @@ static int bgmac_probe(struct platform_device *pdev)
208209
if (IS_ERR(bgmac->plat.base))
209210
return PTR_ERR(bgmac->plat.base);
210211

211-
bgmac->plat.idm_base = devm_platform_ioremap_resource_byname(pdev, "idm_base");
212-
if (IS_ERR(bgmac->plat.idm_base))
213-
return PTR_ERR(bgmac->plat.idm_base);
214-
else
212+
/* The idm_base resource is optional for some platforms */
213+
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "idm_base");
214+
if (regs) {
215+
bgmac->plat.idm_base = devm_ioremap_resource(&pdev->dev, regs);
216+
if (IS_ERR(bgmac->plat.idm_base))
217+
return PTR_ERR(bgmac->plat.idm_base);
215218
bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK;
219+
}
216220

217-
bgmac->plat.nicpm_base = devm_platform_ioremap_resource_byname(pdev, "nicpm_base");
218-
if (IS_ERR(bgmac->plat.nicpm_base))
219-
return PTR_ERR(bgmac->plat.nicpm_base);
221+
/* The nicpm_base resource is optional for some platforms */
222+
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nicpm_base");
223+
if (regs) {
224+
bgmac->plat.nicpm_base = devm_ioremap_resource(&pdev->dev,
225+
regs);
226+
if (IS_ERR(bgmac->plat.nicpm_base))
227+
return PTR_ERR(bgmac->plat.nicpm_base);
228+
}
220229

221230
bgmac->read = platform_bgmac_read;
222231
bgmac->write = platform_bgmac_write;

0 commit comments

Comments
 (0)