diff --git a/drivers/delay_timer/delay_timer.c b/drivers/delay_timer/delay_timer.c index 43f5af7..c9f84d7 100644 --- a/drivers/delay_timer/delay_timer.c +++ b/drivers/delay_timer/delay_timer.c @@ -7,6 +7,7 @@ #include #include #include +#include /*********************************************************** * The delay timer implementation @@ -30,7 +31,8 @@ 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 { /*