@@ -1731,16 +1731,10 @@ fec_probe(struct platform_device *pdev)
17311731 if (!r )
17321732 return - ENXIO ;
17331733
1734- r = request_mem_region (r -> start , resource_size (r ), pdev -> name );
1735- if (!r )
1736- return - EBUSY ;
1737-
17381734 /* Init network device */
17391735 ndev = alloc_etherdev (sizeof (struct fec_enet_private ));
1740- if (!ndev ) {
1741- ret = - ENOMEM ;
1742- goto failed_alloc_etherdev ;
1743- }
1736+ if (!ndev )
1737+ return - ENOMEM ;
17441738
17451739 SET_NETDEV_DEV (ndev , & pdev -> dev );
17461740
@@ -1752,7 +1746,7 @@ fec_probe(struct platform_device *pdev)
17521746 (pdev -> id_entry -> driver_data & FEC_QUIRK_HAS_GBIT ))
17531747 fep -> pause_flag |= FEC_PAUSE_FLAG_AUTONEG ;
17541748
1755- fep -> hwp = ioremap ( r -> start , resource_size ( r ) );
1749+ fep -> hwp = devm_request_and_ioremap ( & pdev -> dev , r );
17561750 fep -> pdev = pdev ;
17571751 fep -> dev_id = dev_id ++ ;
17581752
@@ -1874,11 +1868,8 @@ fec_probe(struct platform_device *pdev)
18741868 clk_disable_unprepare (fep -> clk_ptp );
18751869failed_pin :
18761870failed_clk :
1877- iounmap (fep -> hwp );
18781871failed_ioremap :
18791872 free_netdev (ndev );
1880- failed_alloc_etherdev :
1881- release_mem_region (r -> start , resource_size (r ));
18821873
18831874 return ret ;
18841875}
@@ -1888,7 +1879,6 @@ fec_drv_remove(struct platform_device *pdev)
18881879{
18891880 struct net_device * ndev = platform_get_drvdata (pdev );
18901881 struct fec_enet_private * fep = netdev_priv (ndev );
1891- struct resource * r ;
18921882 int i ;
18931883
18941884 unregister_netdev (ndev );
@@ -1904,13 +1894,8 @@ fec_drv_remove(struct platform_device *pdev)
19041894 if (irq > 0 )
19051895 free_irq (irq , ndev );
19061896 }
1907- iounmap (fep -> hwp );
19081897 free_netdev (ndev );
19091898
1910- r = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
1911- BUG_ON (!r );
1912- release_mem_region (r -> start , resource_size (r ));
1913-
19141899 platform_set_drvdata (pdev , NULL );
19151900
19161901 return 0 ;
0 commit comments