Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83e519b6 authored by Fabio Estevam's avatar Fabio Estevam Committed by David S. Miller
Browse files

fec: Use devm_request_and_ioremap()



Using devm_request_and_ioremap() can make the code cleaner and simpler.

Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a2e4b59a
Loading
Loading
Loading
Loading
+3 −18
Original line number Original line Diff line number Diff line
@@ -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)
	    (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 @@ failed_regulator:
		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)
{
{
	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)
		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;