diff options
Diffstat (limited to 'drivers/delay_timer/delay_timer.c')
-rw-r--r-- | drivers/delay_timer/delay_timer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/delay_timer/delay_timer.c b/drivers/delay_timer/delay_timer.c index 43f5af7b..c9f84d77 100644 --- a/drivers/delay_timer/delay_timer.c +++ b/drivers/delay_timer/delay_timer.c @@ -7,6 +7,7 @@ #include <assert.h> #include <delay_timer.h> #include <platform_def.h> +#include <utils_def.h> /*********************************************************** * The delay timer implementation @@ -30,7 +31,8 @@ void udelay(uint32_t usec) start = ops->get_timer_value(); - total_delta = (usec * ops->clk_div) / ops->clk_mult; + /* Add an extra tick to avoid delaying less than requested. */ + total_delta = div_round_up(usec * ops->clk_div, ops->clk_mult) + 1; do { /* |