Commit 64ac16ec authored by Jarkko Nikula's avatar Jarkko Nikula Committed by Chris Ball

mmc: omap: Convert to devm_ioremap_resource

Simplify probe and cleanup code by using devm_ioremap_resource. This also
makes probe code to follow more common allocate private struct followed by
other initialization style.
Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Tested-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarChris Ball <chris@printf.net>
parent 2ca5dc6f
...@@ -1334,22 +1334,19 @@ static int mmc_omap_probe(struct platform_device *pdev) ...@@ -1334,22 +1334,19 @@ static int mmc_omap_probe(struct platform_device *pdev)
return -EPROBE_DEFER; return -EPROBE_DEFER;
} }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); host = devm_kzalloc(&pdev->dev, sizeof(struct mmc_omap_host),
GFP_KERNEL);
if (host == NULL)
return -ENOMEM;
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (res == NULL || irq < 0) if (irq < 0)
return -ENXIO; return -ENXIO;
res = request_mem_region(res->start, resource_size(res), res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
pdev->name); host->virt_base = devm_ioremap_resource(&pdev->dev, res);
if (res == NULL) if (IS_ERR(host->virt_base))
return -EBUSY; return PTR_ERR(host->virt_base);
host = devm_kzalloc(&pdev->dev, sizeof(struct mmc_omap_host),
GFP_KERNEL);
if (host == NULL) {
ret = -ENOMEM;
goto err_free_mem_region;
}
INIT_WORK(&host->slot_release_work, mmc_omap_slot_release_work); INIT_WORK(&host->slot_release_work, mmc_omap_slot_release_work);
INIT_WORK(&host->send_stop_work, mmc_omap_send_stop_work); INIT_WORK(&host->send_stop_work, mmc_omap_send_stop_work);
...@@ -1374,15 +1371,9 @@ static int mmc_omap_probe(struct platform_device *pdev) ...@@ -1374,15 +1371,9 @@ static int mmc_omap_probe(struct platform_device *pdev)
host->irq = irq; host->irq = irq;
host->use_dma = 1; host->use_dma = 1;
host->phys_base = res->start; host->phys_base = res->start;
host->virt_base = ioremap(res->start, resource_size(res));
if (!host->virt_base)
goto err_ioremap;
host->iclk = clk_get(&pdev->dev, "ick"); host->iclk = clk_get(&pdev->dev, "ick");
if (IS_ERR(host->iclk)) { if (IS_ERR(host->iclk))
ret = PTR_ERR(host->iclk); return PTR_ERR(host->iclk);
goto err_free_mmc_host;
}
clk_enable(host->iclk); clk_enable(host->iclk);
host->fclk = clk_get(&pdev->dev, "fck"); host->fclk = clk_get(&pdev->dev, "fck");
...@@ -1460,11 +1451,6 @@ static int mmc_omap_probe(struct platform_device *pdev) ...@@ -1460,11 +1451,6 @@ static int mmc_omap_probe(struct platform_device *pdev)
err_free_iclk: err_free_iclk:
clk_disable(host->iclk); clk_disable(host->iclk);
clk_put(host->iclk); clk_put(host->iclk);
err_free_mmc_host:
iounmap(host->virt_base);
err_ioremap:
err_free_mem_region:
release_mem_region(res->start, resource_size(res));
return ret; return ret;
} }
...@@ -1492,9 +1478,6 @@ static int mmc_omap_remove(struct platform_device *pdev) ...@@ -1492,9 +1478,6 @@ static int mmc_omap_remove(struct platform_device *pdev)
if (host->dma_rx) if (host->dma_rx)
dma_release_channel(host->dma_rx); dma_release_channel(host->dma_rx);
iounmap(host->virt_base);
release_mem_region(pdev->resource[0].start,
pdev->resource[0].end - pdev->resource[0].start + 1);
destroy_workqueue(host->mmc_omap_wq); destroy_workqueue(host->mmc_omap_wq);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment