[alsa-devel] Wyse Winterm CS5535 Driver
tiwai at suse.de
Wed Oct 31 09:15:33 CET 2007
At Wed, 31 Oct 2007 11:08:06 +1000,
Darryl Bond wrote:
> I have a Wyse S50 terminal that I am booting diskless. I have been
> trying to get sound working. The box has a cs5535 chipset.
> After much fiddling in the kernel source (22.214.171.124 <http://126.96.36.199> ) I
> have been able to make it work. I'm not sure if it is a cs5535 problem
> as the code that fixes it is in ac97_pcm.c.
> It would appear that the card is getting passed an unexpected rate. The
> function sound/pci/ac97/ac97_pcm.c snd_ac97_set_rate()
> has a section:
> case AC97_PCM_FRONT_DAC_RATE:
> case AC97_PCM_LR_ADC_RATE:
> if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRA) == 0) /* VRA */
> if (rate != 48000 && rate != 96000)
> return -EINVAL;
> If I use 'aplay wavfile' the rate passed to this function is 44100.
> I I changethe code to:
> if (rate != 48000 && rate != 96000 && rate != 44100)
> it plays but at a slightly incorrect rate.
Apparently your codec doesn't support VRA, so it cannot work except
for 48kHz (or 96kHz in some cases). Usually other rates are converted
via alsa-lib plugin. In the recent versions, the default PCM
"default" does such conversions automagically (unless you specify
explicitly the non-conversion, e.g., passing the device 'hw").
More information about the Alsa-devel