|
@@ -4695,7 +4695,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
|
|
struct resource *dsi_mem;
|
|
|
struct dsi_data *dsi;
|
|
|
|
|
|
- dsi = kzalloc(sizeof(*dsi), GFP_KERNEL);
|
|
|
+ dsi = devm_kzalloc(&dsidev->dev, sizeof(*dsi), GFP_KERNEL);
|
|
|
if (!dsi) {
|
|
|
r = -ENOMEM;
|
|
|
goto err_alloc;
|
|
@@ -4724,7 +4724,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
|
|
|
|
|
r = dsi_get_clocks(dsidev);
|
|
|
if (r)
|
|
|
- goto err_get_clk;
|
|
|
+ goto err_alloc;
|
|
|
|
|
|
pm_runtime_enable(&dsidev->dev);
|
|
|
|
|
@@ -4742,7 +4742,8 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
|
|
r = -EINVAL;
|
|
|
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) {
|
|
|
DSSERR("can't ioremap DSI\n");
|
|
|
r = -ENOMEM;
|
|
@@ -4752,14 +4753,14 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
|
|
if (dsi->irq < 0) {
|
|
|
DSSERR("platform_get_irq failed\n");
|
|
|
r = -ENODEV;
|
|
|
- goto err_get_irq;
|
|
|
+ goto err_ioremap;
|
|
|
}
|
|
|
|
|
|
- r = request_irq(dsi->irq, omap_dsi_irq_handler, IRQF_SHARED,
|
|
|
- dev_name(&dsidev->dev), dsi->pdev);
|
|
|
+ r = devm_request_irq(&dsidev->dev, dsi->irq, omap_dsi_irq_handler,
|
|
|
+ IRQF_SHARED, dev_name(&dsidev->dev), dsi->pdev);
|
|
|
if (r < 0) {
|
|
|
DSSERR("request_irq failed\n");
|
|
|
- goto err_get_irq;
|
|
|
+ goto err_ioremap;
|
|
|
}
|
|
|
|
|
|
/* DSI VCs initialization */
|
|
@@ -4773,7 +4774,7 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
|
|
|
|
|
|
r = dsi_runtime_get(dsidev);
|
|
|
if (r)
|
|
|
- goto err_get_dsi;
|
|
|
+ goto err_ioremap;
|
|
|
|
|
|
rev = dsi_read_reg(dsidev, DSI_REVISION);
|
|
|
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;
|
|
|
|
|
|
-err_get_dsi:
|
|
|
- free_irq(dsi->irq, dsi->pdev);
|
|
|
-err_get_irq:
|
|
|
- iounmap(dsi->base);
|
|
|
err_ioremap:
|
|
|
pm_runtime_disable(&dsidev->dev);
|
|
|
-err_get_clk:
|
|
|
- kfree(dsi);
|
|
|
err_alloc:
|
|
|
return r;
|
|
|
}
|
|
@@ -4823,11 +4818,6 @@ static int omap_dsihw_remove(struct platform_device *dsidev)
|
|
|
dsi->vdds_dsi_reg = NULL;
|
|
|
}
|
|
|
|
|
|
- free_irq(dsi->irq, dsi->pdev);
|
|
|
- iounmap(dsi->base);
|
|
|
-
|
|
|
- kfree(dsi);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|