projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
[oweals/u-boot.git]
/
cpu
/
at32ap
/
interrupts.c
diff --git
a/cpu/at32ap/interrupts.c
b/cpu/at32ap/interrupts.c
index bef1f30d79d3414cd7e53b8f8e126ff57d80ec43..160838eeeb3b1d3d12e36fb67f911b3ae1b95547 100644
(file)
--- a/
cpu/at32ap/interrupts.c
+++ b/
cpu/at32ap/interrupts.c
@@
-98,18
+98,16
@@
void set_timer(unsigned long t)
*/
void udelay(unsigned long usec)
{
*/
void udelay(unsigned long usec)
{
- unsigned long now, end;
+ unsigned long cycles;
+ unsigned long base;
+ unsigned long now;
- now = sysreg_read(COUNT);
+ base = sysreg_read(COUNT);
+ cycles = ((usec * (get_tbclk() / 10000)) + 50) / 100;
- end = ((usec * (get_tbclk() / 10000)) + 50) / 100;
- end += now;
-
- while (now > end)
- now = sysreg_read(COUNT);
-
- while (now < end)
+ do {
now = sysreg_read(COUNT);
now = sysreg_read(COUNT);
+ } while ((now - base) < cycles);
}
static int set_interrupt_handler(unsigned int nr, void (*handler)(void),
}
static int set_interrupt_handler(unsigned int nr, void (*handler)(void),