diff options
author | Ben Dooks <ben.dooks@codethink.co.uk> | 2014-06-04 07:42:09 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2014-07-09 05:26:00 -0400 |
commit | 18f55fcc9d0e6f40fdc7f81afcbe950da30fbcf9 (patch) | |
tree | dfc43ac44f302dea650c986de636eda2a6ebc65e /drivers/mmc | |
parent | ce7eb68875967902890c752b341dd2b92b0699de (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.c | 24 |
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); |
1499 | eofparse: | 1492 | eofparse: |
1500 | mmc_free_host(mmc); | 1493 | mmc_free_host(mmc); |
1501 | ealloch: | ||
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 | ||