提交 83e519b6 编写于 作者: F Fabio Estevam 提交者: David S. Miller

fec: Use devm_request_and_ioremap()

Using devm_request_and_ioremap() can make the code cleaner and simpler.
Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 a2e4b59a
...@@ -1731,16 +1731,10 @@ fec_probe(struct platform_device *pdev) ...@@ -1731,16 +1731,10 @@ fec_probe(struct platform_device *pdev)
if (!r) if (!r)
return -ENXIO; return -ENXIO;
r = request_mem_region(r->start, resource_size(r), pdev->name);
if (!r)
return -EBUSY;
/* Init network device */ /* Init network device */
ndev = alloc_etherdev(sizeof(struct fec_enet_private)); ndev = alloc_etherdev(sizeof(struct fec_enet_private));
if (!ndev) { if (!ndev)
ret = -ENOMEM; return -ENOMEM;
goto failed_alloc_etherdev;
}
SET_NETDEV_DEV(ndev, &pdev->dev); SET_NETDEV_DEV(ndev, &pdev->dev);
...@@ -1752,7 +1746,7 @@ fec_probe(struct platform_device *pdev) ...@@ -1752,7 +1746,7 @@ fec_probe(struct platform_device *pdev)
(pdev->id_entry->driver_data & FEC_QUIRK_HAS_GBIT)) (pdev->id_entry->driver_data & FEC_QUIRK_HAS_GBIT))
fep->pause_flag |= FEC_PAUSE_FLAG_AUTONEG; fep->pause_flag |= FEC_PAUSE_FLAG_AUTONEG;
fep->hwp = ioremap(r->start, resource_size(r)); fep->hwp = devm_request_and_ioremap(&pdev->dev, r);
fep->pdev = pdev; fep->pdev = pdev;
fep->dev_id = dev_id++; fep->dev_id = dev_id++;
...@@ -1874,11 +1868,8 @@ fec_probe(struct platform_device *pdev) ...@@ -1874,11 +1868,8 @@ fec_probe(struct platform_device *pdev)
clk_disable_unprepare(fep->clk_ptp); clk_disable_unprepare(fep->clk_ptp);
failed_pin: failed_pin:
failed_clk: failed_clk:
iounmap(fep->hwp);
failed_ioremap: failed_ioremap:
free_netdev(ndev); free_netdev(ndev);
failed_alloc_etherdev:
release_mem_region(r->start, resource_size(r));
return ret; return ret;
} }
...@@ -1888,7 +1879,6 @@ fec_drv_remove(struct platform_device *pdev) ...@@ -1888,7 +1879,6 @@ fec_drv_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct fec_enet_private *fep = netdev_priv(ndev); struct fec_enet_private *fep = netdev_priv(ndev);
struct resource *r;
int i; int i;
unregister_netdev(ndev); unregister_netdev(ndev);
...@@ -1904,13 +1894,8 @@ fec_drv_remove(struct platform_device *pdev) ...@@ -1904,13 +1894,8 @@ fec_drv_remove(struct platform_device *pdev)
if (irq > 0) if (irq > 0)
free_irq(irq, ndev); free_irq(irq, ndev);
} }
iounmap(fep->hwp);
free_netdev(ndev); free_netdev(ndev);
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
BUG_ON(!r);
release_mem_region(r->start, resource_size(r));
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册