[alsa-devel] ASOC PCM formats

Mark Brown broonie at opensource.wolfsonmicro.com
Mon Jun 9 11:17:43 CEST 2008

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.

More information about the Alsa-devel mailing list