23 Feb
2012
23 Feb
'12
4:44 p.m.
Sergei Shtylyov wrote:
These functions are not equivalent concerning endianness. You should
probably have used readl_be() instead, else it won't work on PPC anymore.
readl_be() is not good enough, either. The in/out_be functions have specific syncronization instructions in them, so that the operations conform to the PowerPC instruction ordering architecture.
You probably need to do something like this:
#ifdef PPC #define read_ssi(x) in_be32(x) #else #if defined ARM #define read_ssi(x) readl(x) #endif
--
Timur Tabi
Linux kernel developer at Freescale