[PATCH V3 42/63] ST SPEAr: replace readl, writel with __raw_readl, __raw_writel in uncompress.h
From: stanley.miao <hidden>
Date: 2011-01-07 02:26:25
Viresh Kumar wrote:
readl also calls outer cache maintainance operations
I use readl here on spear13xx. It works fine.
This is the definition of readl, could you tell me which code calls
outer cache maintainance ?
#define readl(c) ({ __u32 __v = le32_to_cpu((__force __le32) \
__raw_readl(__mem_pci(c))); __v; })
which are not available during Linux uncompression. This patch replaces readl, writel with __raw_readl and __raw_writel.
I tried to make spear13xx working under big endian. The _raw_readl here brought me a big trouble. Stanley.
quoted hunk ↗ jump to hunk
Signed-off-by: Viresh Kumar <redacted> --- arch/arm/plat-spear/include/plat/uncompress.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)diff --git a/arch/arm/plat-spear/include/plat/uncompress.h b/arch/arm/plat-spear/include/plat/uncompress.h index 99ba678..963aa5b 100644 --- a/arch/arm/plat-spear/include/plat/uncompress.h +++ b/arch/arm/plat-spear/include/plat/uncompress.h@@ -24,10 +24,10 @@ static inline void putc(int c) { void __iomem *base = (void __iomem *)SPEAR_DBG_UART_BASE; - while (readl(base + UART01x_FR) & UART01x_FR_TXFF) + while (__raw_readl(base + UART01x_FR) & UART01x_FR_TXFF) barrier(); - writel(c, base + UART01x_DR); + __raw_writel(c, base + UART01x_DR); } static inline void flush(void)