|
@@ -635,10 +635,14 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
|
|
|
|
|
|
hdmi->dss = dss;
|
|
hdmi->dss = dss;
|
|
|
|
|
|
- r = hdmi_pll_init(dss, hdmi->pdev, &hdmi->pll, &hdmi->wp);
|
|
|
|
|
|
+ r = hdmi_runtime_get(hdmi);
|
|
if (r)
|
|
if (r)
|
|
return r;
|
|
return r;
|
|
|
|
|
|
|
|
+ r = hdmi_pll_init(dss, hdmi->pdev, &hdmi->pll, &hdmi->wp);
|
|
|
|
+ if (r)
|
|
|
|
+ goto err_runtime_put;
|
|
|
|
+
|
|
r = hdmi4_cec_init(hdmi->pdev, &hdmi->core, &hdmi->wp);
|
|
r = hdmi4_cec_init(hdmi->pdev, &hdmi->core, &hdmi->wp);
|
|
if (r)
|
|
if (r)
|
|
goto err_pll_uninit;
|
|
goto err_pll_uninit;
|
|
@@ -652,12 +656,16 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
|
|
hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
|
|
hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
|
|
hdmi);
|
|
hdmi);
|
|
|
|
|
|
|
|
+ hdmi_runtime_put(hdmi);
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
err_cec_uninit:
|
|
err_cec_uninit:
|
|
hdmi4_cec_uninit(&hdmi->core);
|
|
hdmi4_cec_uninit(&hdmi->core);
|
|
err_pll_uninit:
|
|
err_pll_uninit:
|
|
hdmi_pll_uninit(&hdmi->pll);
|
|
hdmi_pll_uninit(&hdmi->pll);
|
|
|
|
+err_runtime_put:
|
|
|
|
+ hdmi_runtime_put(hdmi);
|
|
return r;
|
|
return r;
|
|
}
|
|
}
|
|
|
|
|