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>
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;
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;