[U-Boot] [PATCH 4/4] ARM: bcm283x: Switch to generic timer

Stephen Warren
2015-05-05T21:46:56Z

On 05/04/2015 02:54 PM, Marek Vasut wrote:
> Switch to generic timer implementation from lib/time.c .
> This also fixes a signed overflow which was in __udelay()
> implementation.

Can you explain that a bit more?

> -void __udelay(unsigned long usec)
> -{
> - ulong endtime;
> - signed long diff;
> -
> - endtime = get_timer_us(0) + usec;
> -
> - do {
> - ulong now = get_timer_us(0);
> - diff = endtime - now;
> - } while (diff >= 0);
> -}

I believe since endtime and now hold micro seconds, there shouldn't be
any overflow so long as the microsecond difference fits into 31 bits,
i.e. so long as usec is less than ~36 minutes. I doubt anything is
calling __udelay() with that large of a value. Perhaps the issue this
patch fixes is in get_timer_us(0) instead, or something else changed as
a side-effect?

The other 3 patches in this series,
Acked-by: Stephen Warren <swarren@wwwdotorg.org>