aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2014-10-16 09:52:16 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2014-10-22 04:07:54 -0400
commit88e3c76a8ac1f0a8e334742df0a3f5b4d27e6c44 (patch)
treed4059080a56ec73653697d1319dc685cb8cc92dd
parent13a0c40a49380752d8fbe1ff27009df2b5c71fcf (diff)
OMAPDSS: HDMI: fix PLL GO bit handling
The PLL settings are committed by setting GO bit, which is then cleared by the HW when the settings have been taken into use. The current PLL code handles this wrong: instead of waiting for the bit to be cleared, it waits for the bit to be set. Usually, the bit is always set, as the CPU has just set it before. However, if the CPU takes enough time between setting the GO bit and checking it, the HW may already have cleared the bit and this leads to timeout error. Fix the wait to check the bit properly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_pll.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/fbdev/omap2/dss/hdmi_pll.c b/drivers/video/fbdev/omap2/dss/hdmi_pll.c
index 54df12a8d744..d4ec815ba42e 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi_pll.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi_pll.c
@@ -144,8 +144,8 @@ static int hdmi_pll_config(struct hdmi_pll_data *pll)
144 144
145 /* wait for bit change */ 145 /* wait for bit change */
146 if (hdmi_wait_for_bit_change(pll->base, PLLCTRL_PLL_GO, 146 if (hdmi_wait_for_bit_change(pll->base, PLLCTRL_PLL_GO,
147 0, 0, 1) != 1) { 147 0, 0, 0) != 0) {
148 DSSERR("PLL GO bit not set\n"); 148 DSSERR("PLL GO bit not clearing\n");
149 return -ETIMEDOUT; 149 return -ETIMEDOUT;
150 } 150 }
151 151