| From ab642a05e52a7fca9c4eb62ddc5a61c1a7af3cb7 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Tue, 17 Jan 2017 10:29:09 +0200 |
| Subject: [PATCH 254/255] drm: bridge: dw-hdmi: Assert SVSRET before resetting |
| the PHY |
| |
| According to the PHY IP core vendor, the SVSRET signal must be asserted |
| before resetting the PHY. Tests on RK3288 and R-Car Gen3 showed no |
| regression, the change should thus be safe. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Reviewed-by: Jose Abreu <joabreu@synopsys.com> |
| Signed-off-by: Archit Taneja <architt@codeaurora.org> |
| Link: http://patchwork.freedesktop.org/patch/msgid/20170117082910.27023-20-laurent.pinchart+renesas@ideasonboard.com |
| (cherry picked from commit 2668db37888ff63282147b00dcf54fa491831df3) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/gpu/drm/bridge/dw-hdmi.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/gpu/drm/bridge/dw-hdmi.c |
| +++ b/drivers/gpu/drm/bridge/dw-hdmi.c |
| @@ -986,6 +986,10 @@ static int hdmi_phy_configure(struct dw_ |
| /* gen2 pddq */ |
| dw_hdmi_phy_gen2_pddq(hdmi, 1); |
| |
| + /* Leave low power consumption mode by asserting SVSRET. */ |
| + if (hdmi->phy->has_svsret) |
| + dw_hdmi_phy_enable_svsret(hdmi, 1); |
| + |
| /* PHY reset. The reset signal is active high on Gen2 PHYs. */ |
| hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ); |
| hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ); |
| @@ -1028,11 +1032,7 @@ static int hdmi_phy_configure(struct dw_ |
| dw_hdmi_phy_gen2_txpwron(hdmi, 1); |
| dw_hdmi_phy_gen2_pddq(hdmi, 0); |
| |
| - /* The DWC MHL and HDMI 2.0 PHYs need the SVSRET signal to be set. */ |
| - if (hdmi->phy->has_svsret) |
| - dw_hdmi_phy_enable_svsret(hdmi, 1); |
| - |
| - /*Wait for PHY PLL lock */ |
| + /* Wait for PHY PLL lock */ |
| msec = 5; |
| do { |
| val = hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_TX_PHY_LOCK; |