[alsa-devel] ASoC: PCM formats for AC97

Jon Smirl jonsmirl at gmail.com
Sun Aug 9 15:32:22 CEST 2009


On Sun, Aug 9, 2009 at 6:48 AM, Mark Brown<broonie at sirena.org.uk> wrote:
> On Sat, Aug 08, 2009 at 02:44:48PM -0400, Jon Smirl wrote:
>
>> I think I have this backwards, the ac97 driver can take 8/16/24/32
>> it's the Bestcomm program that doesn't know about anything except 32b.
>
> Remember, you need to consider the I2S driver as well.
>
>> #define SND_SOC_STD_AC97_FMTS (SNDRV_PCM_FMTBIT_S16_LE |\
>>                                SNDRV_PCM_FMTBIT_S32_LE |\
>>                                SNDRV_PCM_FMTBIT_S32_BE)
>> shouldn't this be
>
>> #define SND_SOC_STD_AC97_FMTS (SNDRV_PCM_FMTBIT_S16 |\
>>                                SNDRV_PCM_FMTBIT_S32)
>
>> The first form says the AC97 hardware can take both endians, but it
>> doesn't take both endians it takes the endian matching the machine it
>> is attached to.
>
> No, it can take any endianess - the wire format is fixed.  The layout of
> the data in memory is of little interest to the CODEC.  The formats used
> will be restricted by the CPU driver, the values there are essentially
> functioning as a wildcard match.

I agree with you, but I think the second form better indicates the
wildcard than the first form. It makes it look like endianess is not a
factor.

If you had used the second form I wouldn't have had a problem bringing
up a powerpc driver.

>> Don't the standard AC97 formats also include 8 and 24b?
>
> They'll include whatever the controller is happy to render down onto the
> bus.  That's just the ones that people have needed so far.

We could add 8/24b now so to make thing easier on the next driver developer.


>



-- 
Jon Smirl
jonsmirl at gmail.com


More information about the Alsa-devel mailing list