From 8e15ee8536752c0ae321c80ee4d156c14cbb4d92 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 2 Mar 2011 12:34:38 -0800 Subject: [PATCH] ARM: tegra: Use readl/writel_relaxed for reset tegra_assert_system_reset is called after the cache is disabled. Calling writel will cause the PL310 store buffers to be drained, which requires taking a spinlock. Taking a spinlock is not safe after the caches are disabled. Convert to readl_relaxed and writel_relaxed. Change-Id: I6850179b931ca865580c0fd3fe003b46bdfa43ae Signed-off-by: Colin Cross --- arch/arm/mach-tegra/include/mach/system.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-tegra/include/mach/system.h b/arch/arm/mach-tegra/include/mach/system.h index 70c95ac93355..ccf371aefc9c 100644 --- a/arch/arm/mach-tegra/include/mach/system.h +++ b/arch/arm/mach-tegra/include/mach/system.h @@ -35,9 +35,9 @@ static inline void tegra_assert_system_reset(void) void __iomem *reset = IO_ADDRESS(TEGRA_CLK_RESET_BASE + 0x04); u32 reg; - reg = readl(reset); + reg = readl_relaxed(reset); reg |= 0x04; - writel(reg, reset); + writel_relaxed(reg, reset); } static inline void arch_reset(char mode, const char *cmd) -- 2.34.1