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 (2.6.22.5 <http://2.6.22.5> ) 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; > break; > 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"). Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel