[PATCH V3 42/63] ST SPEAr: replace readl, writel with __raw_readl, __raw_writel in uncompress.h
From: Russell King - ARM Linux <hidden>
Date: 2011-01-07 09:17:20
From: Russell King - ARM Linux <hidden>
Date: 2011-01-07 09:17:20
On Fri, Jan 07, 2011 at 10:26:25AM +0800, stanley.miao wrote:
Viresh Kumar wrote:quoted
readl also calls outer cache maintainance operationsI 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; })
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
is how it's now defined, and __iormb() is defined to be rmb() on ARMv7+,
which translates to a dmb.
writel() on the other hand is less straight forward. It uses __iowmb()
which translates to a wmb() on ARMv7+, which is a dsb and an outer cache
sync operation. This will fail in the decompressor code as there's no
outer cache support there.