
On Tuesday, August 12, 2014 at 04:25:59 PM, andrew.ruder@elecsyscorp.com wrote:
From: Andrew Ruder andrew.ruder@elecsyscorp.com
This patch moves pxa to the common timer functions added in commit
8dfafdd - Introduce common timer functions <Rob Herring>
The (removed) pxa timer code (specifically __udelay()) could deadlock at the 32-bit boundary of get_ticks(). get_ticks() returned a 32-bit value cast up to a 64-bit value. If get_ticks() + tmo in __udelay() crossed the 32-bit boundary, the while condition became unconditionally true and locked the processor. Rather than patch the specific pxa issues, simply move everything over to the common code.
Signed-off-by: Andrew Ruder andrew.ruder@elecsyscorp.com Cc: Marek Vasut marex@denx.de
32-bit rollover occurs every 22 minutes so even a long y-modem transfer was enough to hit this issue fairly regularly. This has been tested.
arch/arm/cpu/pxa/timer.c | 69 +------------------------------------------- include/configs/pxa-common.h | 13 +++++++++ 2 files changed, 14 insertions(+), 68 deletions(-)
Acked-by: Marek Vasut marex@denx.de
+CC Albert.
Albert , can you please pick this one up ?
Best regards, Marek Vasut