]> git.karo-electronics.de Git - linux-beck.git/commitdiff
OMAPDSS: HDMI: fix PLL GO bit handling
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 16 Oct 2014 13:52:16 +0000 (16:52 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 22 Oct 2014 08:07:54 +0000 (11:07 +0300)
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>
drivers/video/fbdev/omap2/dss/hdmi_pll.c

index 54df12a8d744a1b12dc11de98dbf227294ef128c..d4ec815ba42ea996361f1c19b64606d72335f455 100644 (file)
@@ -144,8 +144,8 @@ static int hdmi_pll_config(struct hdmi_pll_data *pll)
 
        /* wait for bit change */
        if (hdmi_wait_for_bit_change(pll->base, PLLCTRL_PLL_GO,
-                       0, 0, 1) != 1) {
-               DSSERR("PLL GO bit not set\n");
+                       0, 0, 0) != 0) {
+               DSSERR("PLL GO bit not clearing\n");
                return -ETIMEDOUT;
        }