summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2011-07-20 11:57:03 +0100
committerWill Deacon <will.deacon@arm.com>2011-08-12 15:40:57 +0100
commit5cb843ca0f781b62dc9793b26926d0b8efef5576 (patch)
treed39a92f10ad51b98e989669ed47b532e85c876d0 /arch/arm
parent7fdd3c49629e8aab48dbd1b2f800854b0f93cba0 (diff)
downloadop-kernel-dev-5cb843ca0f781b62dc9793b26926d0b8efef5576.zip
op-kernel-dev-5cb843ca0f781b62dc9793b26926d0b8efef5576.tar.gz
ARM: realview: ensure visibility of writes during reset
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>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-realview/include/mach/system.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h
index a30f2e3..6657ff23 100644
--- a/arch/arm/mach-realview/include/mach/system.h
+++ b/arch/arm/mach-realview/include/mach/system.h
@@ -44,6 +44,7 @@ static inline void arch_reset(char mode, const char *cmd)
*/
if (realview_reset)
realview_reset(mode);
+ dsb();
}
#endif
OpenPOWER on IntegriCloud