[alsa-devel] force byte-swap at soc level before codec?
brad at heeltoe.com
Sat May 23 12:28:41 CEST 2009
I'm an ALSA SOC newbie. I created a new SOC driver for a new ARM chip
but I'm having endian issues at the codec.
I started with the pxa soc code since I am failure with the pxa* i2s
hardware. The new code is working and data flows fine but due to
hardware constraints the bytes arrive at the codec swapped.
The codec claims S16_LE. The i2s layer claims S16_LE as does the pcm
layer inside soc. The source data in user land is S16_LE. But when the
i2s hardware (which I can't change) does dma the bytes go to the codec
in reverse order.
So, I need a byte swap somewhere. I verified this by sending constant
data from user land via the oss compat layer (i.e. /dev/dsp). If I swap
them in userland they come out on the scope at the codec in the correct
Any know the simplest way to do this?
I've tried a bunch of ways but nothing seems to work correctly. It seems like
ALSA already handles this as long as I tell the right thing from below.
More information about the Alsa-devel