i.MX31: Remove long udelay from DVFS interrupt handler

Split the ISR into two parts and alllow quick return from first half.

Introduces a uevent() API to have a callback happen in a specified
number of microseconds. Right now only one event is supported.

Change-Id: Ib1666165be2f6082e5275d64961f083cab104f9f
This commit is contained in:
Michael Sevakis 2013-05-11 19:59:01 -04:00
parent 4877f618d6
commit 0a7d941fb9
6 changed files with 140 additions and 88 deletions

View file

@ -44,6 +44,11 @@ static inline unsigned long usec_timer(void)
return GPTCNT;
}
/* Fire an event usecs microseconds from now */
typedef void (* uevent_cb_type)(void);
void uevent(unsigned long usecs, uevent_cb_type callback);
void uevent_cancel(void);
void watchdog_init(unsigned int half_seconds);
void watchdog_service(void);
@ -58,9 +63,6 @@ void tick_stop(void);
void kernel_device_init(void);
void system_halt(void);
/* Handle some audio lockout related tasks */
void kernel_audio_locking(bool locking);
#define KDEV_INIT
struct ARM_REGS {