On 4 June 2014 13:42, Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> wrote: > Start tidying the probe/release code by using devm_ioremap_resource() to > map the IO registers. > > Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > --- > Fixes from v1: > - return the PTR_ERR() from devm_ioremap > - remove error print as it already shows an error > --- > drivers/mmc/host/sh_mmcif.c | 24 ++++++------------------ > 1 file changed, 6 insertions(+), 18 deletions(-) > > diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c > index 7f819f1..3ed54c8 100644 > --- a/drivers/mmc/host/sh_mmcif.c > +++ b/drivers/mmc/host/sh_mmcif.c > @@ -1377,22 +1377,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) > @@ -1497,8 +1490,6 @@ eclkget: > pm_runtime_disable(&pdev->dev); > eofparse: > mmc_free_host(mmc); > -ealloch: > - iounmap(reg); > return ret; > } > > @@ -1523,9 +1514,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); > > -- > 2.0.0.rc2 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html