net: gemini: Use devm_platform_get_and_ioremap_resource()

Use devm_platform_get_and_ioremap_resource() to simplify
code.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Yang Yingliang 2021-06-07 16:11:45 +08:00 committed by David S. Miller
parent 4fb473fe73
commit ef91f79810
1 changed files with 9 additions and 25 deletions

View File

@ -2356,8 +2356,6 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct gemini_ethernet *geth;
struct net_device *netdev;
struct resource *gmacres;
struct resource *dmares;
struct device *parent;
unsigned int id;
int irq;
@ -2390,24 +2388,18 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev)
port->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
/* DMA memory */
dmares = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!dmares) {
dev_err(dev, "no DMA resource\n");
return -ENODEV;
}
port->dma_base = devm_ioremap_resource(dev, dmares);
if (IS_ERR(port->dma_base))
port->dma_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(port->dma_base)) {
dev_err(dev, "get DMA address failed\n");
return PTR_ERR(port->dma_base);
}
/* GMAC config memory */
gmacres = platform_get_resource(pdev, IORESOURCE_MEM, 1);
if (!gmacres) {
dev_err(dev, "no GMAC resource\n");
return -ENODEV;
}
port->gmac_base = devm_ioremap_resource(dev, gmacres);
if (IS_ERR(port->gmac_base))
port->gmac_base = devm_platform_get_and_ioremap_resource(pdev, 1, NULL);
if (IS_ERR(port->gmac_base)) {
dev_err(dev, "get GMAC address failed\n");
return PTR_ERR(port->gmac_base);
}
/* Interrupt */
irq = platform_get_irq(pdev, 0);
@ -2502,10 +2494,6 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev)
if (ret)
goto unprepare;
netdev_info(netdev,
"irq %d, DMA @ 0x%pap, GMAC @ 0x%pap\n",
port->irq, &dmares->start,
&gmacres->start);
return 0;
unprepare:
@ -2544,17 +2532,13 @@ static int gemini_ethernet_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct gemini_ethernet *geth;
unsigned int retry = 5;
struct resource *res;
u32 val;
/* Global registers */
geth = devm_kzalloc(dev, sizeof(*geth), GFP_KERNEL);
if (!geth)
return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
return -ENODEV;
geth->base = devm_ioremap_resource(dev, res);
geth->base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(geth->base))
return PTR_ERR(geth->base);
geth->dev = dev;