prevent timer overflows in libpayload

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5292 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2010-03-25 18:53:20 +00:00 committed by Stefan Reinauer
parent 1beabe10cd
commit d361308f18
1 changed files with 6 additions and 4 deletions

View File

@ -88,7 +88,7 @@ static inline void _delay(unsigned long long delta)
*/ */
void ndelay(unsigned int n) void ndelay(unsigned int n)
{ {
_delay(n * cpu_khz / 1000000); _delay((unsigned long long)n * cpu_khz / 1000000);
} }
/** /**
@ -98,7 +98,7 @@ void ndelay(unsigned int n)
*/ */
void udelay(unsigned int n) void udelay(unsigned int n)
{ {
_delay(n * cpu_khz / 1000); _delay((unsigned long long)n * cpu_khz / 1000);
} }
/** /**
@ -108,7 +108,7 @@ void udelay(unsigned int n)
*/ */
void mdelay(unsigned int m) void mdelay(unsigned int m)
{ {
_delay(m * cpu_khz); _delay((unsigned long long)m * cpu_khz);
} }
/** /**
@ -118,5 +118,7 @@ void mdelay(unsigned int m)
*/ */
void delay(unsigned int s) void delay(unsigned int s)
{ {
_delay(s * cpu_khz * 1000); int i;
for (i=0; i<1000; i++)
_delay((unsigned long long)s * cpu_khz);
} }