net: broadcom: fix a mistake about ioremap resource
Commitd7a5502b0b
("net: broadcom: convert to devm_platform_ioremap_resource_byname()") will broke this driver. idm_base and nicpm_base were optional, after this change, they are mandatory. it will probe fails with -22 when the dtb doesn't have them defined. so revert part of this commit and make idm_base and nicpm_base as optional. Fixes:d7a5502b0b
("net: broadcom: convert to devm_platform_ioremap_resource_byname()") Reported-by: Jonathan Richardson <jonathan.richardson@broadcom.com> Cc: Scott Branden <scott.branden@broadcom.com> Cc: Ray Jui <ray.jui@broadcom.com> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
bd4af432cc
Коммит
755f5738ff
|
@ -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;
|
||||||
const u8 *mac_addr;
|
const u8 *mac_addr;
|
||||||
|
|
||||||
bgmac = bgmac_alloc(&pdev->dev);
|
bgmac = bgmac_alloc(&pdev->dev);
|
||||||
|
@ -206,16 +207,21 @@ 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 =
|
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "idm_base");
|
||||||
devm_platform_ioremap_resource_byname(pdev, "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);
|
||||||
bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK;
|
bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
bgmac->plat.nicpm_base =
|
regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nicpm_base");
|
||||||
devm_platform_ioremap_resource_byname(pdev, "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;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче