ARM: realview: ensure visibility of writes during reset
authorWill Deacon <will.deacon@arm.com>
Wed, 20 Jul 2011 10:57:03 +0000 (11:57 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 12 Aug 2011 14:40:57 +0000 (15:40 +0100)
The various reset routines in mach-realview rely on an FPGA to
power-cycle the board after writing some magic runes to memory-mapped
registers.

This patch adds a dsb() following the writes, so that they become
visible before we mdelay(1000) in the arch_reset code. Without this
patch, the timeout would expire sporadically, causing the reset to fail.

Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/mach-realview/include/mach/system.h

index a30f2e3ec17852a8f865b2ddb8320f6c9b3f4987..6657ff23116139184061b66c52064cb81565e737 100644 (file)
@@ -44,6 +44,7 @@ static inline void arch_reset(char mode, const char *cmd)
         */
        if (realview_reset)
                realview_reset(mode);
+       dsb();
 }
 
 #endif