diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2015-02-25 22:50:39 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-06-22 19:55:12 +0100 |
commit | 215e362dafede7cc691d8a573d2b31bc7138a770 (patch) | |
tree | 0d74459f20b700a50e6f3e637d5f8a017e3aecfd /arch/arm/include/asm/delay.h | |
parent | 2374b063c3dfbb68a40b52067eaff81510f384b1 (diff) | |
download | linux-stable-215e362dafede7cc691d8a573d2b31bc7138a770.tar.gz linux-stable-215e362dafede7cc691d8a573d2b31bc7138a770.tar.bz2 linux-stable-215e362dafede7cc691d8a573d2b31bc7138a770.zip |
ARM: 8306/1: loop_udelay: remove bogomips value limitation
Now that we don't support ARMv3 anymore, the loop based delay code can
convert microsecs into number of loops using a 64-bit multiplication
and more precision.
This allows us to lift the hard limit of 3355 on the bogomips value as
loops_per_jiffy may now safely span the full 32-bit range.
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/asm/delay.h')
-rw-r--r-- | arch/arm/include/asm/delay.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/include/asm/delay.h b/arch/arm/include/asm/delay.h index dff714d886d5..b7a428154355 100644 --- a/arch/arm/include/asm/delay.h +++ b/arch/arm/include/asm/delay.h @@ -10,8 +10,8 @@ #include <asm/param.h> /* HZ */ #define MAX_UDELAY_MS 2 -#define UDELAY_MULT ((UL(2199023) * HZ) >> 11) -#define UDELAY_SHIFT 30 +#define UDELAY_MULT UL(2047 * HZ + 483648 * HZ / 1000000) +#define UDELAY_SHIFT 31 #ifndef __ASSEMBLY__ @@ -34,7 +34,7 @@ extern struct arm_delay_ops { * it, it means that you're calling udelay() with an out of range value. * * With currently imposed limits, this means that we support a max delay - * of 2000us. Further limits: HZ<=1000 and bogomips<=3355 + * of 2000us. Further limits: HZ<=1000 */ extern void __bad_udelay(void); |