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;
dpi_init_output_port(dpi, port);
return 0;
-
-err_datalines:
- of_node_put(ep);
-
- return r;
}
void dpi_uninit_port(struct device_node *port)
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",
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);
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;
}
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,
return 0;
+err_uninit_output:
+ hdmi_uninit_output(hdmi);
+ pm_runtime_disable(&pdev->dev);
err_pll:
hdmi_pll_uninit(&hdmi->pll);
err_free:
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,
return 0;
+err_uninit_output:
+ hdmi_uninit_output(hdmi);
+ pm_runtime_disable(&pdev->dev);
err_pll:
hdmi_pll_uninit(&hdmi->pll);
err_free:
}
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;
return 0;
-err_datapairs:
- of_node_put(ep);
err_free:
kfree(sdi);
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);
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,
return 0;
-err_probe_of:
-err_runtime_get:
+err_pm_disable:
pm_runtime_disable(&pdev->dev);
err_free:
kfree(venc);