From: Zheng Yang Date: Sat, 14 Feb 2015 00:51:54 +0000 (+0800) Subject: hdmi: fix set hdmi switch state error when remove hdmi. X-Git-Tag: firefly_0821_release~4158^2~438 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f4fed0d82086d89d62b5494797b752da54f9c2d9;p=firefly-linux-kernel-4.4.55.git hdmi: fix set hdmi switch state error when remove hdmi. Signed-off-by: Zheng Yang --- 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)