At Sat, 16 Nov 2013 18:09:51 +0200, Jarkko Nikula wrote:
On 11/16/2013 02:01 AM, Taras Kondratiuk wrote:
From: Victor Kamensky victor.kamensky@linaro.org
All OMAP IP blocks expect LE data, but CPU may operate in BE mode. Need to use endian neutral functions to read/write h/w registers. I.e instead of __raw_read[lw] and __raw_write[lw] functions code need to use read[lw]_relaxed and write[lw]_relaxed functions. If the first simply reads/writes register, the second will byteswap it if host operates in BE mode.
Changes are trivial sed like replacement of __raw_xxx functions with xxx_relaxed variant.
Signed-off-by: Victor Kamensky victor.kamensky@linaro.org Signed-off-by: Taras Kondratiuk taras.kondratiuk@linaro.org
sound/soc/omap/mcbsp.c | 12 ++++++------ sound/soc/omap/omap-dmic.c | 4 ++-- sound/soc/omap/omap-mcpdm.c | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-)
Looks ok to me by looking at the _relaxed definitions in arch/arm/include/asm/io.h.
Acked-by: Jarkko Nikula jarkko.nikula@bitmer.com
What's the reason to use _relaxed version in all places?
I understand this patch is to fix the endianess, so this can be applied as is, as long as the original code works. But, still in general, I wonder how the concurrency is guaranteed by this driver code...
thanks,
Takashi