[alsa-devel] soc-core: Question about cpu_dai and codec_dai conversions

Troy Kisky troy.kisky at boundarydevices.com
Tue Sep 30 18:10:57 CEST 2008

Currently, we have the line

runtime->hw.formats =
	codec_dai->playback.formats & cpu_dai->playback.formats;

in soc-core.c

This seems to force the two to support a common subset.
For example some codec support only big-endian or little-endian

My codec expects the most significant bit to be shifted 1st. I would
call that big-endian. But the codec marks itself as only doing little
endian, because the cpu_dai converts from little-endian to big-endian.
Do all codecs expect the msb 1st? If so, then endianness would seem irrelevant
to codecs and both should be set.

The same goes with number of channels. The davinci dma engine can convert
a playback stream from mono to stereo, or a capture stream from stereo
to mono. The davinci McBsp can also be more efficient if allowed to swap
left and right channels. Is there a method to let the codec know to swap
them back?


More information about the Alsa-devel mailing list