diff options
author | Ben Dooks <ben.dooks@codethink.co.uk> | 2014-06-04 12:42:09 +0100 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2014-07-09 11:26:00 +0200 |
commit | 18f55fcc9d0e6f40fdc7f81afcbe950da30fbcf9 (patch) | |
tree | dfc43ac44f302dea650c986de636eda2a6ebc65e | |
parent | ce7eb68875967902890c752b341dd2b92b0699de (diff) | |
download | talos-op-linux-18f55fcc9d0e6f40fdc7f81afcbe950da30fbcf9.tar.gz talos-op-linux-18f55fcc9d0e6f40fdc7f81afcbe950da30fbcf9.zip |
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>
-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) dev_err(&pdev->dev, "Get irq error\n"); return -ENXIO; } + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(&pdev->dev, "platform_get_resource error.\n"); - return -ENXIO; - } - reg = ioremap(res->start, resource_size(res)); - if (!reg) { - dev_err(&pdev->dev, "ioremap error.\n"); - return -ENOMEM; - } + reg = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(reg)) + return PTR_ERR(reg); mmc = mmc_alloc_host(sizeof(struct sh_mmcif_host), &pdev->dev); - if (!mmc) { - ret = -ENOMEM; - goto ealloch; - } + if (!mmc) + return -ENOMEM; ret = mmc_of_parse(mmc); if (ret < 0) @@ -1498,8 +1491,6 @@ eclkget: pm_runtime_disable(&pdev->dev); eofparse: mmc_free_host(mmc); -ealloch: - iounmap(reg); return ret; } @@ -1524,9 +1515,6 @@ static int sh_mmcif_remove(struct platform_device *pdev) */ cancel_delayed_work_sync(&host->timeout_work); - if (host->addr) - iounmap(host->addr); - irq[0] = platform_get_irq(pdev, 0); irq[1] = platform_get_irq(pdev, 1); |