From f4fed0d82086d89d62b5494797b752da54f9c2d9 Mon Sep 17 00:00:00 2001 From: Zheng Yang Date: Sat, 14 Feb 2015 08:51:54 +0800 Subject: [PATCH] hdmi: fix set hdmi switch state error when remove hdmi. Signed-off-by: Zheng Yang --- drivers/video/rockchip/hdmi/rockchip-hdmi-core.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c index b7b67178d083..c066797d6968 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c @@ -236,7 +236,12 @@ static void hdmi_wq_remove(struct hdmi *hdmi) DBG("%s", __func__); if (hdmi->ops->remove) hdmi->ops->remove(hdmi); - + #ifdef CONFIG_SWITCH + if ((hdmi->edid.baseaudio_support && + hdmi->edid.sink_hdmi) || + rk_fb_get_display_policy() == DISPLAY_POLICY_BOX) + switch_set_state(&(hdmi->switchdev), 0); + #endif list_for_each_safe(pos, n, &hdmi->edid.modelist) { list_del(pos); kfree(pos); @@ -259,12 +264,6 @@ static void hdmi_wq_remove(struct hdmi *hdmi) } hdmi->hotplug = HDMI_HPD_REMOVED; hdmi_send_uevent(hdmi, KOBJ_REMOVE); - #ifdef CONFIG_SWITCH - if ((hdmi->edid.baseaudio_support && - hdmi->edid.sink_hdmi) || - rk_fb_get_display_policy() == DISPLAY_POLICY_BOX) - switch_set_state(&(hdmi->switchdev), 0); - #endif } static void hdmi_work_queue(struct work_struct *work) -- 2.34.1