diff options
Diffstat (limited to 'src/soc/nvidia/tegra132/timer.c')
-rw-r--r-- | src/soc/nvidia/tegra132/timer.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/soc/nvidia/tegra132/timer.c b/src/soc/nvidia/tegra132/timer.c index 4a43208f61..ed10340040 100644 --- a/src/soc/nvidia/tegra132/timer.c +++ b/src/soc/nvidia/tegra132/timer.c @@ -28,18 +28,18 @@ void init_timer(void) void udelay(unsigned usec) { - struct mono_time current, end; - - if (!thread_yield_microseconds(usec)) - return; + struct stopwatch sw; /* * As the hardware clock granularity is in microseconds pad the * requested delay by one to get at least >= requested usec delay. */ - timer_monotonic_get(&end); - mono_time_add_usecs(&end, usec + 1); - do { - timer_monotonic_get(¤t); - } while (mono_time_before(¤t, &end)); + usec += 1; + + if (!thread_yield_microseconds(usec)) + return; + + stopwatch_init_usecs_expire(&sw, usec); + while (!stopwatch_expired(&sw)) + ; } |