summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dpi.c10
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dsi.c9
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi4.c7
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi5.c7
-rw-r--r--drivers/gpu/drm/omapdrm/dss/sdi.c7
-rw-r--r--drivers/gpu/drm/omapdrm/dss/venc.c7
6 files changed, 19 insertions, 28 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c
index 0c11d17f23a4..5839009f272e 100644
--- a/drivers/gpu/drm/omapdrm/dss/dpi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dpi.c
@@ -745,15 +745,14 @@ int dpi_init_port(struct dss_device *dss, struct platform_device *pdev,
return 0;
r = of_property_read_u32(ep, "data-lines", &datalines);
+ of_node_put(ep);
if (r) {
DSSERR("failed to parse datalines\n");
- goto err_datalines;
+ return r;
}
dpi->data_lines = datalines;
- of_node_put(ep);
-
dpi->pdev = pdev;
dpi->dss_model = dss_model;
dpi->dss = dss;
@@ -764,11 +763,6 @@ int dpi_init_port(struct dss_device *dss, struct platform_device *pdev,
dpi_init_output_port(dpi, port);
return 0;
-
-err_datalines:
- of_node_put(ep);
-
- return r;
}
void dpi_uninit_port(struct device_node *port)
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index ee260353b9ca..173c05a54550 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -5360,7 +5360,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
r = dsi_runtime_get(dsi);
if (r)
- goto err_runtime_get;
+ goto err_pm_disable;
rev = dsi_read_reg(dsi, DSI_REVISION);
dev_dbg(dev, "OMAP DSI rev %d.%d\n",
@@ -5381,7 +5381,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
r = dsi_probe_of(dsi);
if (r) {
DSSERR("Invalid DSI DT data\n");
- goto err_probe_of;
+ goto err_uninit_output;
}
r = of_platform_populate(dev->of_node, NULL, NULL, dev);
@@ -5404,11 +5404,10 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
return 0;
-err_probe_of:
+err_uninit_output:
dsi_uninit_output(dsi);
dsi_runtime_put(dsi);
-
-err_runtime_get:
+err_pm_disable:
pm_runtime_disable(dev);
return r;
}
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
index bf800cede2ad..1d1f2e0b2b2a 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
@@ -780,9 +780,7 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
r = hdmi_audio_register(hdmi);
if (r) {
DSSERR("Registering HDMI audio failed\n");
- hdmi_uninit_output(hdmi);
- pm_runtime_disable(&pdev->dev);
- return r;
+ goto err_uninit_output;
}
hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
@@ -790,6 +788,9 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
return 0;
+err_uninit_output:
+ hdmi_uninit_output(hdmi);
+ pm_runtime_disable(&pdev->dev);
err_pll:
hdmi_pll_uninit(&hdmi->pll);
err_free:
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
index e5d23dd19f99..92ae561bf974 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
@@ -773,9 +773,7 @@ static int hdmi5_bind(struct device *dev, struct device *master, void *data)
r = hdmi_audio_register(hdmi);
if (r) {
DSSERR("Registering HDMI audio failed %d\n", r);
- hdmi_uninit_output(hdmi);
- pm_runtime_disable(&pdev->dev);
- return r;
+ goto err_uninit_output;
}
hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
@@ -783,6 +781,9 @@ static int hdmi5_bind(struct device *dev, struct device *master, void *data)
return 0;
+err_uninit_output:
+ hdmi_uninit_output(hdmi);
+ pm_runtime_disable(&pdev->dev);
err_pll:
hdmi_pll_uninit(&hdmi->pll);
err_free:
diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
index 4b70a3044dd6..e9b280784264 100644
--- a/drivers/gpu/drm/omapdrm/dss/sdi.c
+++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
@@ -358,16 +358,15 @@ int sdi_init_port(struct dss_device *dss, struct platform_device *pdev,
}
r = of_property_read_u32(ep, "datapairs", &datapairs);
+ of_node_put(ep);
if (r) {
DSSERR("failed to parse datapairs\n");
- goto err_datapairs;
+ goto err_free;
}
sdi->datapairs = datapairs;
sdi->dss = dss;
- of_node_put(ep);
-
sdi->pdev = pdev;
port->data = sdi;
@@ -375,8 +374,6 @@ int sdi_init_port(struct dss_device *dss, struct platform_device *pdev,
return 0;
-err_datapairs:
- of_node_put(ep);
err_free:
kfree(sdi);
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index dd9af335dba0..93c3e5250a63 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -867,7 +867,7 @@ static int venc_bind(struct device *dev, struct device *master, void *data)
r = venc_runtime_get(venc);
if (r)
- goto err_runtime_get;
+ goto err_pm_disable;
rev_id = (u8)(venc_read_reg(venc, VENC_REV_ID) & 0xff);
dev_dbg(&pdev->dev, "OMAP VENC rev %d\n", rev_id);
@@ -877,7 +877,7 @@ static int venc_bind(struct device *dev, struct device *master, void *data)
r = venc_probe_of(venc);
if (r) {
DSSERR("Invalid DT data\n");
- goto err_probe_of;
+ goto err_pm_disable;
}
venc->debugfs = dss_debugfs_create_file(dss, "venc", venc_dump_regs,
@@ -887,8 +887,7 @@ static int venc_bind(struct device *dev, struct device *master, void *data)
return 0;
-err_probe_of:
-err_runtime_get:
+err_pm_disable:
pm_runtime_disable(&pdev->dev);
err_free:
kfree(venc);