summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/delay.h
diff options
context:
space:
mode:
authorNicolas Pitre <nicolas.pitre@linaro.org>2015-02-25 22:50:39 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2016-06-22 19:55:12 +0100
commit215e362dafede7cc691d8a573d2b31bc7138a770 (patch)
tree0d74459f20b700a50e6f3e637d5f8a017e3aecfd /arch/arm/include/asm/delay.h
parent2374b063c3dfbb68a40b52067eaff81510f384b1 (diff)
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.h6
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);