On Fri, May 1, 2009 at 6:14 AM, Mark Brown broonie@sirena.org.uk wrote:
.playback = { .stream_name = "stac9766 analog", .channels_min = 1, .channels_max = 2, .rates = SNDRV_PCM_RATE_8000_48000, .formats = SNDRV_PCM_FMTBIT_S32_BE,
Are you sure about this? AC97 generally does 16 bit samples...
AC97 can be 16, 18 or 20 bit. The link always transmits 20 bits. This codec is a 20b version.
On the mpc5200 side you can only feed the FIFOs 32b data. "For each AC97 slot a 32 bit data word must be in the TxFIFO" So do I make these pair up?
static struct snd_soc_dai psc_ac97_dai_template[] = { { .name = "%s analog", .suspend = psc_ac97_suspend, .resume = psc_ac97_resume, .playback = { .channels_min = 1, .channels_max = 6, .rates = SNDRV_PCM_RATE_8000_48000, .formats = SNDRV_PCM_FMTBIT_S32_BE, }, .capture = { .channels_min = 1, .channels_max = 2, .rates = SNDRV_PCM_RATE_8000_48000, .formats = SNDRV_PCM_FMTBIT_S32_BE, }, .ops = &psc_ac97_analog_ops, }, { .name = "%s digital", .playback = { .channels_min = 1, .channels_max = 2, .rates = SNDRV_PCM_RATE_32000 | \ SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .formats = SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE, }, .ops = &psc_ac97_digital_ops, }};