mirror of
https://github.com/torvalds/linux
synced 2024-10-27 21:59:21 +00:00
OMAPDSS: use devm_ functions
The various devm_ functions allocate memory that is released when a driver detaches. This patch uses these functions for data that is allocated in the probe function of a platform device and is only freed in the remove function. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
cc1d3e032d
commit
6e2a14d2c5
|
@ -3322,7 +3322,8 @@ static int omap_dispchw_probe(struct platform_device *pdev)
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
dispc.base = ioremap(dispc_mem->start, resource_size(dispc_mem));
|
dispc.base = devm_ioremap(&pdev->dev, dispc_mem->start,
|
||||||
|
resource_size(dispc_mem));
|
||||||
if (!dispc.base) {
|
if (!dispc.base) {
|
||||||
DSSERR("can't ioremap DISPC\n");
|
DSSERR("can't ioremap DISPC\n");
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
|
@ -3332,14 +3333,14 @@ static int omap_dispchw_probe(struct platform_device *pdev)
|
||||||
if (dispc.irq < 0) {
|
if (dispc.irq < 0) {
|
||||||
DSSERR("platform_get_irq failed\n");
|
DSSERR("platform_get_irq failed\n");
|
||||||
r = -ENODEV;
|
r = -ENODEV;
|
||||||
goto err_irq;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = request_irq(dispc.irq, omap_dispc_irq_handler, IRQF_SHARED,
|
r = devm_request_irq(&pdev->dev, dispc.irq, omap_dispc_irq_handler,
|
||||||
"OMAP DISPC", dispc.pdev);
|
IRQF_SHARED, "OMAP DISPC", dispc.pdev);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
DSSERR("request_irq failed\n");
|
DSSERR("request_irq failed\n");
|
||||||
goto err_irq;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
|
|
||||||
pm_runtime_enable(&pdev->dev);
|
pm_runtime_enable(&pdev->dev);
|
||||||
|
@ -3362,9 +3363,6 @@ static int omap_dispchw_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
err_runtime_get:
|
err_runtime_get:
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
free_irq(dispc.irq, dispc.pdev);
|
|
||||||
err_irq:
|
|
||||||
iounmap(dispc.base);
|
|
||||||
err_ioremap:
|
err_ioremap:
|
||||||
clk_put(dispc.dss_clk);
|
clk_put(dispc.dss_clk);
|
||||||
err_get_clk:
|
err_get_clk:
|
||||||
|
@ -3377,8 +3375,6 @@ static int omap_dispchw_remove(struct platform_device *pdev)
|
||||||
|
|
||||||
clk_put(dispc.dss_clk);
|
clk_put(dispc.dss_clk);
|
||||||
|
|
||||||
free_irq(dispc.irq, dispc.pdev);
|
|
||||||
iounmap(dispc.base);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4695,7 +4695,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
struct resource *dsi_mem;
|
struct resource *dsi_mem;
|
||||||
struct dsi_data *dsi;
|
struct dsi_data *dsi;
|
||||||
|
|
||||||
dsi = kzalloc(sizeof(*dsi), GFP_KERNEL);
|
dsi = devm_kzalloc(&dsidev->dev, sizeof(*dsi), GFP_KERNEL);
|
||||||
if (!dsi) {
|
if (!dsi) {
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
goto err_alloc;
|
goto err_alloc;
|
||||||
|
@ -4724,7 +4724,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
|
|
||||||
r = dsi_get_clocks(dsidev);
|
r = dsi_get_clocks(dsidev);
|
||||||
if (r)
|
if (r)
|
||||||
goto err_get_clk;
|
goto err_alloc;
|
||||||
|
|
||||||
pm_runtime_enable(&dsidev->dev);
|
pm_runtime_enable(&dsidev->dev);
|
||||||
|
|
||||||
|
@ -4742,7 +4742,8 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
dsi->base = ioremap(dsi_mem->start, resource_size(dsi_mem));
|
dsi->base = devm_ioremap(&dsidev->dev, dsi_mem->start,
|
||||||
|
resource_size(dsi_mem));
|
||||||
if (!dsi->base) {
|
if (!dsi->base) {
|
||||||
DSSERR("can't ioremap DSI\n");
|
DSSERR("can't ioremap DSI\n");
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
|
@ -4752,14 +4753,14 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
if (dsi->irq < 0) {
|
if (dsi->irq < 0) {
|
||||||
DSSERR("platform_get_irq failed\n");
|
DSSERR("platform_get_irq failed\n");
|
||||||
r = -ENODEV;
|
r = -ENODEV;
|
||||||
goto err_get_irq;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = request_irq(dsi->irq, omap_dsi_irq_handler, IRQF_SHARED,
|
r = devm_request_irq(&dsidev->dev, dsi->irq, omap_dsi_irq_handler,
|
||||||
dev_name(&dsidev->dev), dsi->pdev);
|
IRQF_SHARED, dev_name(&dsidev->dev), dsi->pdev);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
DSSERR("request_irq failed\n");
|
DSSERR("request_irq failed\n");
|
||||||
goto err_get_irq;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DSI VCs initialization */
|
/* DSI VCs initialization */
|
||||||
|
@ -4773,7 +4774,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
|
|
||||||
r = dsi_runtime_get(dsidev);
|
r = dsi_runtime_get(dsidev);
|
||||||
if (r)
|
if (r)
|
||||||
goto err_get_dsi;
|
goto err_ioremap;
|
||||||
|
|
||||||
rev = dsi_read_reg(dsidev, DSI_REVISION);
|
rev = dsi_read_reg(dsidev, DSI_REVISION);
|
||||||
dev_dbg(&dsidev->dev, "OMAP DSI rev %d.%d\n",
|
dev_dbg(&dsidev->dev, "OMAP DSI rev %d.%d\n",
|
||||||
|
@ -4791,14 +4792,8 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_get_dsi:
|
|
||||||
free_irq(dsi->irq, dsi->pdev);
|
|
||||||
err_get_irq:
|
|
||||||
iounmap(dsi->base);
|
|
||||||
err_ioremap:
|
err_ioremap:
|
||||||
pm_runtime_disable(&dsidev->dev);
|
pm_runtime_disable(&dsidev->dev);
|
||||||
err_get_clk:
|
|
||||||
kfree(dsi);
|
|
||||||
err_alloc:
|
err_alloc:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -4823,11 +4818,6 @@ static int omap_dsihw_remove(struct platform_device *dsidev)
|
||||||
dsi->vdds_dsi_reg = NULL;
|
dsi->vdds_dsi_reg = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
free_irq(dsi->irq, dsi->pdev);
|
|
||||||
iounmap(dsi->base);
|
|
||||||
|
|
||||||
kfree(dsi);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -751,7 +751,8 @@ static int omap_dsshw_probe(struct platform_device *pdev)
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
dss.base = ioremap(dss_mem->start, resource_size(dss_mem));
|
dss.base = devm_ioremap(&pdev->dev, dss_mem->start,
|
||||||
|
resource_size(dss_mem));
|
||||||
if (!dss.base) {
|
if (!dss.base) {
|
||||||
DSSERR("can't ioremap DSS\n");
|
DSSERR("can't ioremap DSS\n");
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
|
@ -760,7 +761,7 @@ static int omap_dsshw_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
r = dss_get_clocks();
|
r = dss_get_clocks();
|
||||||
if (r)
|
if (r)
|
||||||
goto err_clocks;
|
goto err_ioremap;
|
||||||
|
|
||||||
pm_runtime_enable(&pdev->dev);
|
pm_runtime_enable(&pdev->dev);
|
||||||
|
|
||||||
|
@ -808,8 +809,6 @@ static int omap_dsshw_probe(struct platform_device *pdev)
|
||||||
err_runtime_get:
|
err_runtime_get:
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
dss_put_clocks();
|
dss_put_clocks();
|
||||||
err_clocks:
|
|
||||||
iounmap(dss.base);
|
|
||||||
err_ioremap:
|
err_ioremap:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -819,8 +818,6 @@ static int omap_dsshw_remove(struct platform_device *pdev)
|
||||||
dpi_exit();
|
dpi_exit();
|
||||||
sdi_exit();
|
sdi_exit();
|
||||||
|
|
||||||
iounmap(dss.base);
|
|
||||||
|
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
|
|
||||||
dss_put_clocks();
|
dss_put_clocks();
|
||||||
|
|
|
@ -925,7 +925,8 @@ static int omap_rfbihw_probe(struct platform_device *pdev)
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
rfbi.base = ioremap(rfbi_mem->start, resource_size(rfbi_mem));
|
rfbi.base = devm_ioremap(&pdev->dev, rfbi_mem->start,
|
||||||
|
resource_size(rfbi_mem));
|
||||||
if (!rfbi.base) {
|
if (!rfbi.base) {
|
||||||
DSSERR("can't ioremap RFBI\n");
|
DSSERR("can't ioremap RFBI\n");
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
|
@ -963,7 +964,6 @@ static int omap_rfbihw_probe(struct platform_device *pdev)
|
||||||
rfbi_runtime_put();
|
rfbi_runtime_put();
|
||||||
err_get_rfbi:
|
err_get_rfbi:
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
iounmap(rfbi.base);
|
|
||||||
err_ioremap:
|
err_ioremap:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -971,7 +971,6 @@ static int omap_rfbihw_probe(struct platform_device *pdev)
|
||||||
static int omap_rfbihw_remove(struct platform_device *pdev)
|
static int omap_rfbihw_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
iounmap(rfbi.base);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -798,7 +798,8 @@ static int omap_venchw_probe(struct platform_device *pdev)
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
venc.base = ioremap(venc_mem->start, resource_size(venc_mem));
|
venc.base = devm_ioremap(&pdev->dev, venc_mem->start,
|
||||||
|
resource_size(venc_mem));
|
||||||
if (!venc.base) {
|
if (!venc.base) {
|
||||||
DSSERR("can't ioremap VENC\n");
|
DSSERR("can't ioremap VENC\n");
|
||||||
r = -ENOMEM;
|
r = -ENOMEM;
|
||||||
|
@ -807,7 +808,7 @@ static int omap_venchw_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
r = venc_get_clocks(pdev);
|
r = venc_get_clocks(pdev);
|
||||||
if (r)
|
if (r)
|
||||||
goto err_get_clk;
|
goto err_ioremap;
|
||||||
|
|
||||||
pm_runtime_enable(&pdev->dev);
|
pm_runtime_enable(&pdev->dev);
|
||||||
|
|
||||||
|
@ -825,8 +826,6 @@ static int omap_venchw_probe(struct platform_device *pdev)
|
||||||
err_get_venc:
|
err_get_venc:
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
venc_put_clocks();
|
venc_put_clocks();
|
||||||
err_get_clk:
|
|
||||||
iounmap(venc.base);
|
|
||||||
err_ioremap:
|
err_ioremap:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -842,7 +841,6 @@ static int omap_venchw_remove(struct platform_device *pdev)
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
venc_put_clocks();
|
venc_put_clocks();
|
||||||
|
|
||||||
iounmap(venc.base);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue