[alsa-devel] ASOC PCM formats

Jon Smirl jonsmirl at gmail.com
Mon Jun 9 15:08:18 CEST 2008

On 6/9/08, Mark Brown <broonie at opensource.wolfsonmicro.com> wrote:
> On Fri, Jun 06, 2008 at 08:00:04PM -0400, Jon Smirl wrote:
>  > Why is the AC97 format set to S16 in all of the drivers? The link is
>  > 20b and my codec takes 20b, how do I get 20b data to the device? I
>  > tried using SNDRV_PCM_FORMAT_S20_3BE but all I get is static.
> The format that is set needs to correspond to what your AC97 controller
>  needs as input.  The setting for the codec just needs to match one of
>  the supported ones for the controller - the specific memory layout of
>  the data should not be important, the controller ought to reformat the
>  data into whatever is appropriate for the bus.
>  This isn't entirely ideal but in practice works well since most
>  controllers need samples in pretty much the form they're outputing and
>  so the sample size in RAM usually needs to correspond to the sample size
>  that appears on the bus.
>  As Clemens said, try S32.

The format is in three places:
codec dai
platform dai
dma driver

Isn't the wm9712 an AC97 controller? on pxa..
platform_dai = SNDRV_PCM_FMTBIT_S16_LE

I tried copying this. It sends 16 bit sound through the system.

I'll try this next..
codec dai = SNDRV_PCM_FMTBIT_S32
platform_dai = SNDRV_PCM_FMTBIT_S32_BE
dma driver = SNDRV_PCM_FMTBIT_S32_BE

Jon Smirl
jonsmirl at gmail.com

More information about the Alsa-devel mailing list