diff --git a/drivers/video/rockchip/hdmi/chips/rk3036/rk3036_hdmi_hw.c b/drivers/video/rockchip/hdmi/chips/rk3036/rk3036_hdmi_hw.c index d4ee596fe1a9..6c1edee27031 100755 --- a/drivers/video/rockchip/hdmi/chips/rk3036/rk3036_hdmi_hw.c +++ b/drivers/video/rockchip/hdmi/chips/rk3036/rk3036_hdmi_hw.c @@ -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(); diff --git a/drivers/video/rockchip/hdmi/rk_hdmi_task.c b/drivers/video/rockchip/hdmi/rk_hdmi_task.c index 4311edf9c7a3..b7d96ffd3373 100755 --- a/drivers/video/rockchip/hdmi/rk_hdmi_task.c +++ b/drivers/video/rockchip/hdmi/rk_hdmi_task.c @@ -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;