rk3036/rk312x hdmi:
authorZheng Yang <zhengyang@rock-chips.com>
Thu, 16 Oct 2014 09:42:09 +0000 (17:42 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Thu, 16 Oct 2014 09:42:09 +0000 (17:42 +0800)
        We need to check hdmi connect status in probe hdmi. If hdmi is
        enable in uboot, and is removed before kernel, we will power
        down hdmi, and set it as disconnected.

drivers/video/rockchip/hdmi/chips/rk3036/rk3036_hdmi_hw.c
drivers/video/rockchip/hdmi/rk_hdmi_task.c

index d4ee596fe1a962e79088ebcee620d4ee89e18e40..6c1edee27031e98e6116183f691ee254a51e040c 100755 (executable)
@@ -857,6 +857,14 @@ int rk3036_hdmi_initial(struct hdmi *hdmi_drv)
        if (!hdmi_drv->uboot_logo) {
                rk3036_hdmi_reset_pclk();
                rk3036_hdmi_reset(hdmi_drv);
+       } else {
+               hdmi_drv->hotplug = rk3036_hdmi_detect_hotplug(hdmi_drv);
+               if (hdmi_drv->hotplug == HDMI_HPD_REMOVED) {
+                       rk3036_hdmi_removed(hdmi_drv);
+                       hdmi_drv->state = HDMI_SLEEP;
+                       hdmi_drv->lcdc->uboot_logo = 0;
+                       hdmi_drv->uboot_logo = 0;
+               }
        }
        if (hdmi_drv->hdcp_power_on_cb)
                rc = hdmi_drv->hdcp_power_on_cb();
index 4311edf9c7a3c5aecbf5b72d0d81738dcccea984..b7d96ffd3373b94f80e196a67348802999b09275 100755 (executable)
@@ -48,8 +48,8 @@ static void hdmi_sys_show_state(struct hdmi *hdmi)
 
 int hdmi_sys_init(struct hdmi *hdmi)
 {
-       hdmi->uboot_logo = support_uboot_display();
-       if ((uboot_vic > 0) && (hdmi->uboot_logo > 0)) {
+       if (uboot_vic > 0) {
+               hdmi->uboot_logo = support_uboot_display();
                hdmi->hotplug = HDMI_HPD_ACTIVED;
                hdmi->state = PLAY_BACK;
                hdmi->enable = HDMI_ENABLE;