diff options
| author | Ben Warren <biggerbadderben@gmail.com> | 2008-06-08 22:04:22 -0700 | 
|---|---|---|
| committer | Ben Warren <biggerbadderben@gmail.com> | 2008-06-08 22:04:22 -0700 | 
| commit | e44f3ea4e801d37ef293284cb57b9637382f211a (patch) | |
| tree | 09e6e9e68764e65ef7115db18319ec7e57c90b41 /cpu/at32ap/interrupts.c | |
| parent | 0e38c938ed4bcadb4f4fc1419a541431e94fc202 (diff) | |
| parent | 8155efbd7ae9c65564ca98affe94631d612ae088 (diff) | |
| download | olio-uboot-2014.01-e44f3ea4e801d37ef293284cb57b9637382f211a.tar.xz olio-uboot-2014.01-e44f3ea4e801d37ef293284cb57b9637382f211a.zip | |
Merge branch 'master' of git://git.denx.de/u-boot
Diffstat (limited to 'cpu/at32ap/interrupts.c')
| -rw-r--r-- | cpu/at32ap/interrupts.c | 16 | 
1 files changed, 7 insertions, 9 deletions
| diff --git a/cpu/at32ap/interrupts.c b/cpu/at32ap/interrupts.c index bef1f30d7..160838eee 100644 --- 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)  { -	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); +	} while ((now - base) < cycles);  }  static int set_interrupt_handler(unsigned int nr, void (*handler)(void), |