From: Andy Yan <andy....@rock-chips.com>

Putting these scattered initialization code together is helpful
for the following migration to the DRM bridge driver mode.

Signed-off-by: Andy Yan <andy....@rock-chips.com>

---

Changes in v5:
- Split from PATCH 9/10

 drivers/gpu/drm/rockchip/inno_hdmi.c | 30 ++++++++++++++--------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c 
b/drivers/gpu/drm/rockchip/inno_hdmi.c
index 2d41cf59752f2..82f2904ed7a3b 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -620,6 +620,21 @@ static void inno_hdmi_init_hw(struct inno_hdmi *hdmi)
        hdmi_modb(hdmi, HDMI_SYS_CTRL, msk, val);
 
        inno_hdmi_standby(hdmi);
+
+       /*
+        * When the controller isn't configured to an accurate
+        * video timing and there is no reference clock available,
+        * then the TMDS clock source would be switched to PCLK_HDMI,
+        * so we need to init the TMDS rate to PCLK rate, and
+        * reconfigure the DDC clock.
+        */
+       if (hdmi->refclk)
+               inno_hdmi_i2c_init(hdmi, clk_get_rate(hdmi->refclk));
+       else
+               inno_hdmi_i2c_init(hdmi, clk_get_rate(hdmi->pclk));
+
+       /* Unmute hotplug interrupt */
+       hdmi_modb(hdmi, HDMI_STATUS, m_MASK_INT_HOTPLUG, v_MASK_INT_HOTPLUG(1));
 }
 
 static int inno_hdmi_disable_frame(struct drm_connector *connector,
@@ -1299,27 +1314,12 @@ static int inno_hdmi_bind(struct device *dev, struct 
device *master,
                goto err_disable_clk;
        }
 
-       /*
-        * When the controller isn't configured to an accurate
-        * video timing and there is no reference clock available,
-        * then the TMDS clock source would be switched to PCLK_HDMI,
-        * so we need to init the TMDS rate to PCLK rate, and
-        * reconfigure the DDC clock.
-        */
-       if (hdmi->refclk)
-               inno_hdmi_i2c_init(hdmi, clk_get_rate(hdmi->refclk));
-       else
-               inno_hdmi_i2c_init(hdmi, clk_get_rate(hdmi->pclk));
-
        ret = inno_hdmi_register(drm, hdmi);
        if (ret)
                goto err_put_adapter;
 
        dev_set_drvdata(dev, hdmi);
 
-       /* Unmute hotplug interrupt */
-       hdmi_modb(hdmi, HDMI_STATUS, m_MASK_INT_HOTPLUG, v_MASK_INT_HOTPLUG(1));
-
        ret = devm_request_threaded_irq(dev, irq, inno_hdmi_hardirq,
                                        inno_hdmi_irq, IRQF_SHARED,
                                        dev_name(dev), hdmi);
-- 
2.43.0

Reply via email to