[alsa-devel] [PATCH 1/1] [ALSA]TLV320AIC23B: Support more sample rates
Mark Brown
broonie at sirena.org.uk
Fri Oct 31 23:11:56 CET 2008
On Fri, Oct 31, 2008 at 02:20:34PM -0700, Troy Kisky wrote:
> Add support for more sample rates, different crystals
> and split playback/capture rates.
>
> Signed-off-by: Troy Kisky <troy.kisky at boundarydevices.com>
> Acked-by: Arun KS <arunks at mistralsolutions.com>
This looks good, thanks - it's great to see more drivers moving away
from fixed tables for clock sources.
Acked-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
but a few minor coding standard things:
> + for (i = 0; i < 4; i++) {
> + int base = mclk / bosr_usb_divisor_table[i];
> + int mask = sr_valid_mask[i];
...
> + for (j = 0; j < 16; j++, mask >>= 1) {
...
> + adc = base * sr_adc_mult_table[j];
> + dac = base * sr_dac_mult_table[j];
It'd be better if these loops used ARRAY_SIZE() for the limits rather
than having magic numbers.
> +static int set_sample_rate_control(struct snd_soc_codec *codec, int mclk,
> + u32 sample_rate_adc, u32 sample_rate_dac)
> +{
> + /* Search for the right sample rate */
> + int data = find_rate(mclk, sample_rate_adc, sample_rate_dac);
> + if (data < 0) {
> + printk(KERN_ERR "%s:Invalid rate %u,%u requested\n",
> + __func__, sample_rate_adc, sample_rate_dac);
> + return -EINVAL;
> + }
> + tlv320aic23_write(codec, TLV320AIC23_SRATE, data);
> + if (1) {
> + int adc, dac;
> + get_current_sample_rates(codec, mclk, &adc, &dac);
> + printk(KERN_DEBUG "actual samplerate = %u,%u reg=%x\n",
> + adc, dac, data);
> + }
There's no need for the if () statement here - you can just open a new
block. I guess this is supposed to be for debug purposes only? If so
then it'd be better to surround it in #ifdef DEBUG.
More information about the Alsa-devel
mailing list