i810_audio bug (?)

From: Reza Naima
Date: Wed Sep 17 2003 - 05:43:32 EST



When I pass audio_samplerate = 32000 to

ioctl(afd, SNDCTL_DSP_SPEED, &audio_samplerate)

it changes my audio_sample rate from 32000 to 31627.

Now, this is causing problems with my downstream apps so I did some
investigating. Looking into i810_set_adc_rate() in i810_audio.c,
there is some wierd math going on..

1) first, the original rate (32000) is converted to a new rate ..

rate = (rate * clocking)/48000

where clocking, in my case, is 48566.

2) this new value is fed into newrate=ac97_set_adc_rate() which returns
the orignal sampling rate value (32000). This number is then modified
by the ratio

dmabuf->rate = newrate * 48000 / clocking.

3) This results in the value 31627 that I'm seeing. Now, is this the
actual sample rate, or some internal value used to generate a 32000kbps
sample rate? If so, is it perhaps a bug that dmabuf->rate is being
returned rather than newrate?


Thanks,
-Reza



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/