@@ -1765,9 +1765,7 @@ static void at_dma_off(struct at_dma *atdma)
1765
1765
1766
1766
static int __init at_dma_probe (struct platform_device * pdev )
1767
1767
{
1768
- struct resource * io ;
1769
1768
struct at_dma * atdma ;
1770
- size_t size ;
1771
1769
int irq ;
1772
1770
int err ;
1773
1771
int i ;
@@ -1793,9 +1791,9 @@ static int __init at_dma_probe(struct platform_device *pdev)
1793
1791
if (!atdma )
1794
1792
return - ENOMEM ;
1795
1793
1796
- io = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
1797
- if (! io )
1798
- return - EINVAL ;
1794
+ atdma -> regs = devm_platform_ioremap_resource (pdev , 0 );
1795
+ if (IS_ERR ( atdma -> regs ) )
1796
+ return PTR_ERR ( atdma -> regs ) ;
1799
1797
1800
1798
irq = platform_get_irq (pdev , 0 );
1801
1799
if (irq < 0 )
@@ -1805,21 +1803,10 @@ static int __init at_dma_probe(struct platform_device *pdev)
1805
1803
atdma -> dma_common .cap_mask = plat_dat -> cap_mask ;
1806
1804
atdma -> all_chan_mask = (1 << plat_dat -> nr_channels ) - 1 ;
1807
1805
1808
- size = resource_size (io );
1809
- if (!request_mem_region (io -> start , size , pdev -> dev .driver -> name ))
1810
- return - EBUSY ;
1811
-
1812
- atdma -> regs = ioremap (io -> start , size );
1813
- if (!atdma -> regs ) {
1814
- err = - ENOMEM ;
1815
- goto err_release_r ;
1816
- }
1817
-
1818
1806
atdma -> clk = clk_get (& pdev -> dev , "dma_clk" );
1819
- if (IS_ERR (atdma -> clk )) {
1820
- err = PTR_ERR (atdma -> clk );
1821
- goto err_clk ;
1822
- }
1807
+ if (IS_ERR (atdma -> clk ))
1808
+ return PTR_ERR (atdma -> clk );
1809
+
1823
1810
err = clk_prepare_enable (atdma -> clk );
1824
1811
if (err )
1825
1812
goto err_clk_prepare ;
@@ -1957,19 +1944,13 @@ static int __init at_dma_probe(struct platform_device *pdev)
1957
1944
clk_disable_unprepare (atdma -> clk );
1958
1945
err_clk_prepare :
1959
1946
clk_put (atdma -> clk );
1960
- err_clk :
1961
- iounmap (atdma -> regs );
1962
- atdma -> regs = NULL ;
1963
- err_release_r :
1964
- release_mem_region (io -> start , size );
1965
1947
return err ;
1966
1948
}
1967
1949
1968
1950
static int at_dma_remove (struct platform_device * pdev )
1969
1951
{
1970
1952
struct at_dma * atdma = platform_get_drvdata (pdev );
1971
1953
struct dma_chan * chan , * _chan ;
1972
- struct resource * io ;
1973
1954
1974
1955
at_dma_off (atdma );
1975
1956
if (pdev -> dev .of_node )
@@ -1994,12 +1975,6 @@ static int at_dma_remove(struct platform_device *pdev)
1994
1975
clk_disable_unprepare (atdma -> clk );
1995
1976
clk_put (atdma -> clk );
1996
1977
1997
- iounmap (atdma -> regs );
1998
- atdma -> regs = NULL ;
1999
-
2000
- io = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
2001
- release_mem_region (io -> start , resource_size (io ));
2002
-
2003
1978
return 0 ;
2004
1979
}
2005
1980
0 commit comments