Re: [RFC 16/23] ASoC: omap: mcbsp, mcpdm, dmic: raw read and write endian fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
> > 
> > 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@xxxxxxxxxx>
> > Signed-off-by: Taras Kondratiuk <taras.kondratiuk@xxxxxxxxxx>
> > ---
> >  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@xxxxxxxxxx>
> 

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
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux