HDMI: calling rk_fb_switch_screen() to close vop related to HDMI
authorZheng Yang <zhengyang@rock-chips.com>
Sat, 11 Apr 2015 09:14:07 +0000 (17:14 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Sat, 11 Apr 2015 09:14:07 +0000 (17:14 +0800)
      before calling switch_set_state() when HDMI is removed.
      For android hwcompser need to make sure vop is disabled when
      received hdmi removing event.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/hdmi/rockchip-hdmi-core.c

index ee514c3e6d9b7c13e21bc13d4d05b0371fc7beb7..76d8c7ba8e071965ec5121d85881d73b69f08000 100644 (file)
@@ -241,6 +241,10 @@ static void hdmi_wq_remove(struct hdmi *hdmi)
        DBG("%s", __func__);
        if (hdmi->ops->remove)
                hdmi->ops->remove(hdmi);
+       if (hdmi->hotplug == HDMI_HPD_ACTIVED) {
+               screen.type = SCREEN_HDMI;
+               rk_fb_switch_screen(&screen, 0, hdmi->lcdc->id);
+       }
        #ifdef CONFIG_SWITCH
        if ((hdmi->edid.baseaudio_support &&
             hdmi->edid.sink_hdmi) ||
@@ -251,9 +255,7 @@ static void hdmi_wq_remove(struct hdmi *hdmi)
                list_del(pos);
                kfree(pos);
        }
-
        kfree(hdmi->edid.audio);
-
        if (hdmi->edid.specs) {
                kfree(hdmi->edid.specs->modedb);
                kfree(hdmi->edid.specs);
@@ -263,10 +265,6 @@ static void hdmi_wq_remove(struct hdmi *hdmi)
        hdmi->mute      = HDMI_AV_UNMUTE;
        hdmi->mode_3d = HDMI_3D_NONE;
        hdmi->uboot = 0;
-       if (hdmi->hotplug == HDMI_HPD_ACTIVED) {
-               screen.type = SCREEN_HDMI;
-               rk_fb_switch_screen(&screen, 0, hdmi->lcdc->id);
-       }
        hdmi->hotplug = HDMI_HPD_REMOVED;
        hdmi_send_uevent(hdmi, KOBJ_REMOVE);
 }