From: Zheng Yang Date: Thu, 26 Mar 2015 08:18:38 +0000 (+0800) Subject: HDMI: rockchip-hdmiv2: X-Git-Tag: firefly_0821_release~4158^2~282 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=abfe921f667530e1e619585f5d05589f98212203;p=firefly-linux-kernel-4.4.55.git HDMI: rockchip-hdmiv2: Set i2c5_hdmi to gpio mode when suspend and reset it to hdmi ddc mode when system resume. Signed-off-by: Zheng Yang --- diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c index 87d8158f6753..eaa91be7097e 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c @@ -249,6 +249,7 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self, int blank_mode = *((int *)event->data); struct hdmi *hdmi = hdmi_dev->hdmi; struct delayed_work *delay_work; + struct pinctrl_state *gpio_state; if (action == FB_EARLY_EVENT_BLANK) { switch (blank_mode) { @@ -264,6 +265,8 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self, if (delay_work) flush_delayed_work(delay_work); rockchip_hdmiv2_clk_disable(hdmi_dev); + gpio_state = pinctrl_lookup_state(hdmi_dev->dev->pins->p, "gpio"); + pinctrl_select_state(hdmi_dev->dev->pins->p, gpio_state); } break; } @@ -272,6 +275,8 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self, case FB_BLANK_UNBLANK: HDMIDBG("resume hdmi\n"); if (hdmi->sleep) { + pinctrl_select_state(hdmi_dev->dev->pins->p, + hdmi_dev->dev->pins->default_state); rockchip_hdmiv2_clk_enable(hdmi_dev); rockchip_hdmiv2_dev_initial(hdmi_dev); if (hdmi->ops->hdcp_power_on_cb)