diff options
| -rw-r--r-- | arch/arm/lib/delay.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c index 312d43eb686a..8044591dca72 100644 --- a/arch/arm/lib/delay.c +++ b/arch/arm/lib/delay.c | |||
| @@ -83,6 +83,12 @@ void __init register_current_timer_delay(const struct delay_timer *timer) | |||
| 83 | NSEC_PER_SEC, 3600); | 83 | NSEC_PER_SEC, 3600); |
| 84 | res = cyc_to_ns(1ULL, new_mult, new_shift); | 84 | res = cyc_to_ns(1ULL, new_mult, new_shift); |
| 85 | 85 | ||
| 86 | if (res > 1000) { | ||
| 87 | pr_err("Ignoring delay timer %ps, which has insufficient resolution of %lluns\n", | ||
| 88 | timer, res); | ||
| 89 | return; | ||
| 90 | } | ||
| 91 | |||
| 86 | if (!delay_calibrated && (!delay_res || (res < delay_res))) { | 92 | if (!delay_calibrated && (!delay_res || (res < delay_res))) { |
| 87 | pr_info("Switching to timer-based delay loop, resolution %lluns\n", res); | 93 | pr_info("Switching to timer-based delay loop, resolution %lluns\n", res); |
| 88 | delay_timer = timer; | 94 | delay_timer = timer; |
