summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorBen Dooks <ben.dooks@codethink.co.uk>2014-06-04 07:42:09 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2014-07-09 05:26:00 -0400
commit18f55fcc9d0e6f40fdc7f81afcbe950da30fbcf9 (patch)
treedfc43ac44f302dea650c986de636eda2a6ebc65e /drivers/mmc
parentce7eb68875967902890c752b341dd2b92b0699de (diff)
mmc: sh-mmcif: use devm_ for ioremap
Start tidying the probe/release code by using devm_ioremap_resource() to map the IO registers. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sh_mmcif.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index dc9a28a29c18..e25821fe4e9e 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -1378,22 +1378,15 @@ static int sh_mmcif_probe(struct platform_device *pdev)
1378 dev_err(&pdev->dev, "Get irq error\n"); 1378 dev_err(&pdev->dev, "Get irq error\n");
1379 return -ENXIO; 1379 return -ENXIO;
1380 } 1380 }
1381
1381 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1382 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1382 if (!res) { 1383 reg = devm_ioremap_resource(&pdev->dev, res);
1383 dev_err(&pdev->dev, "platform_get_resource error.\n"); 1384 if (IS_ERR(reg))
1384 return -ENXIO; 1385 return PTR_ERR(reg);
1385 }
1386 reg = ioremap(res->start, resource_size(res));
1387 if (!reg) {
1388 dev_err(&pdev->dev, "ioremap error.\n");
1389 return -ENOMEM;
1390 }
1391 1386
1392 mmc = mmc_alloc_host(sizeof(struct sh_mmcif_host), &pdev->dev); 1387 mmc = mmc_alloc_host(sizeof(struct sh_mmcif_host), &pdev->dev);
1393 if (!mmc) { 1388 if (!mmc)
1394 ret = -ENOMEM; 1389 return -ENOMEM;
1395 goto ealloch;
1396 }
1397 1390
1398 ret = mmc_of_parse(mmc); 1391 ret = mmc_of_parse(mmc);
1399 if (ret < 0) 1392 if (ret < 0)
@@ -1498,8 +1491,6 @@ eclkget:
1498 pm_runtime_disable(&pdev->dev); 1491 pm_runtime_disable(&pdev->dev);
1499eofparse: 1492eofparse:
1500 mmc_free_host(mmc); 1493 mmc_free_host(mmc);
1501ealloch:
1502 iounmap(reg);
1503 return ret; 1494 return ret;
1504} 1495}
1505 1496
@@ -1524,9 +1515,6 @@ static int sh_mmcif_remove(struct platform_device *pdev)
1524 */ 1515 */
1525 cancel_delayed_work_sync(&host->timeout_work); 1516 cancel_delayed_work_sync(&host->timeout_work);
1526 1517
1527 if (host->addr)
1528 iounmap(host->addr);
1529
1530 irq[0] = platform_get_irq(pdev, 0); 1518 irq[0] = platform_get_irq(pdev, 0);
1531 irq[1] = platform_get_irq(pdev, 1); 1519 irq[1] = platform_get_irq(pdev, 1);
1532 1520