summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2011-07-20 12:57:03 +0200
committerWill Deacon <will.deacon@arm.com>2011-08-12 16:40:57 +0200
commit5cb843ca0f781b62dc9793b26926d0b8efef5576 (patch)
treed39a92f10ad51b98e989669ed47b532e85c876d0 /arch/arm/mach-realview
parentARM: perf: make name of arm_pmu_type consistent (diff)
downloadlinux-5cb843ca0f781b62dc9793b26926d0b8efef5576.tar.xz
linux-5cb843ca0f781b62dc9793b26926d0b8efef5576.zip
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/mach-realview')
-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 a30f2e3ec178..6657ff231161 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