
Subject: [PATCH-OMAP3] OMAP3: Fix typo and cp_delay
From: Dirk Behme dirk.behme@gmail.com
Fix typo and cp_delay. Requested by Wolfgang Denk.
Signed-off-by: Dirk Behme dirk.behme@gmail.com
---
Regarding cp_delay there was the comment:
-- cut --
+static void cp_delay(void) +{
- volatile int i;
- /* Many OMAP regs need at least 2 nops */
- for (i = 0; i < 100; i++) ;
There is not much reason for the compiler not to optimize this code away. -- cut --
Please note that most of ARM code uses *this* cp_delay() implementation. If I understood correctly at IRC, Scott Wood made some tests and volatile prevents gcc from optimizing loop away.
cpu/arm_cortexa8/cpu.c | 5 ++--- cpu/arm_cortexa8/start.S | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-)
Index: u-boot-arm/cpu/arm_cortexa8/start.S =================================================================== --- u-boot-arm.orig/cpu/arm_cortexa8/start.S +++ u-boot-arm/cpu/arm_cortexa8/start.S @@ -394,7 +394,7 @@ irq: .align 5 fiq: get_fiq_stack - /* someone ought to write a more effiction fiq_save_user_regs */ + /* someone ought to write a more effective fiq_save_user_regs */ irq_save_user_regs bl do_fiq irq_restore_user_regs Index: u-boot-arm/cpu/arm_cortexa8/cpu.c =================================================================== --- u-boot-arm.orig/cpu/arm_cortexa8/cpu.c +++ u-boot-arm/cpu/arm_cortexa8/cpu.c @@ -68,10 +68,9 @@ static void write_p15_c1(unsigned long v
static void cp_delay(void) { - volatile int i; - /* Many OMAP regs need at least 2 nops */ - for (i = 0; i < 100; i++) ; + asm("nop"); + asm("nop"); }
/* See also ARM Ref. Man. */