From 33d5e1fd472147efd1bfd7b9501e2e176008ba55 Mon Sep 17 00:00:00 2001 From: Sandor Yu Date: Wed, 11 Jan 2012 16:42:53 +0800 Subject: ENGR00171383 HDMI: blank and unblank display can not resume. It cause by HDMI Blank/Unblank function not implement. Implement the HDMI blank/unblank function. Signed-off-by: Sandor Yu --- drivers/video/mxc_hdmi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c index 3c9a52685d4d..6572c1b8e41e 100644 --- a/drivers/video/mxc_hdmi.c +++ b/drivers/video/mxc_hdmi.c @@ -1404,8 +1404,14 @@ static void mxc_hdmi_phy_disable(struct mxc_hdmi *hdmi) if (!hdmi->phy_enabled) return; + /* Setting PHY to reset status */ + hdmi_writeb(HDMI_MC_PHYRSTZ_DEASSERT, HDMI_MC_PHYRSTZ); + + /* Power down PHY */ mxc_hdmi_phy_enable_tmds(0); mxc_hdmi_phy_enable_power(0); + mxc_hdmi_phy_gen2_txpwron(0); + mxc_hdmi_phy_gen2_pddq(1); hdmi->phy_enabled = false; dev_dbg(&hdmi->pdev->dev, "%s - exit\n", __func__); @@ -2054,10 +2060,13 @@ static int mxc_hdmi_fb_event(struct notifier_block *nb, dev_dbg(&hdmi->pdev->dev, "event=FB_EVENT_BLANK - UNBLANK\n"); mxc_hdmi_enable_pins(hdmi); + if (hdmi->fb_reg && hdmi->cable_plugin) + mxc_hdmi_setup(hdmi); } else { dev_dbg(&hdmi->pdev->dev, "event=FB_EVENT_BLANK - BLANK\n"); mxc_hdmi_disable_pins(hdmi); + mxc_hdmi_phy_disable(hdmi); } break; } -- cgit v1.2.3