]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
ARM: OMAP: SoSSI: workaround for HW timing bug
authorImre Deak <imre.deak@nokia.com>
Tue, 21 Mar 2006 17:55:33 +0000 (13:55 -0400)
committerJuha Yrjola <juha.yrjola@nokia.com>
Tue, 21 Mar 2006 17:55:33 +0000 (13:55 -0400)
Certain HW timings can render the SoSSI block dead. This can happen when
the SoSSI TW1 value is less then 3 and we are trying to read the SoSSI
FIFO. At this point SoSSI goes haywire and return 0 for all its
registers. This patch will set a minimum limit of 3 on TW1.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@nokia.com>
drivers/video/omap/sossi.c

index 986f639f58895b1c038c665bebdce7b19d8d2966..6e8142ba5f7bf4a32285a1227a807629f0051602 100644 (file)
@@ -240,6 +240,9 @@ static int calc_rd_timings(struct extif_timings *t)
                recyc = reoff + 1;
 
        tw1 = recyc - reoff;
+       /* values less then 3 result in the SOSSI block resetting itself */
+       if (tw1 < 3)
+               tw1 = 3;
        if (tw1 > 0x40)
                return -1;
 
@@ -284,6 +287,9 @@ static int calc_wr_timings(struct extif_timings *t)
                wecyc = weoff + 1;
 
        tw1 = wecyc - weoff;
+       /* values less then 3 result in the SOSSI block resetting itself */
+       if (tw1 < 3)
+               tw1 = 3;
        if (tw1 > 0x40)
                return -1;