Thread (84 messages) 84 messages, 6 authors, 2011-01-14
STALE5629d

[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

On Fri, Jan 07, 2011 at 10:26:25AM +0800, stanley.miao wrote:
Viresh Kumar wrote:
quoted
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; })
#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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help