[alsa-devel] [PATCH v2 1/5] sound: sam9x5_wm8731: machine driver for at91sam9x5 wm8731 boards
Lars-Peter Clausen
lars at metafoo.de
Mon Jul 8 10:39:17 EDT 2013
On 07/08/2013 03:29 PM, Richard Genoud wrote:
[...]
> +/*
> + * Logic for a wm8731 as connected on a at91sam9x5 based board.
> + */
> +static int at91sam9x5ek_wm8731_init(struct snd_soc_pcm_runtime *rtd)
> +{
[...]
> + codec_dai->driver->playback.rates &= SNDRV_PCM_RATE_8000 |
> + SNDRV_PCM_RATE_32000 |
> + SNDRV_PCM_RATE_48000 |
> + SNDRV_PCM_RATE_96000;
> + codec_dai->driver->capture.rates &= SNDRV_PCM_RATE_8000 |
> + SNDRV_PCM_RATE_32000 |
> + SNDRV_PCM_RATE_48000 |
> + SNDRV_PCM_RATE_96000;
That's not right. The driver structure is shared between all instances of
the codec, a single instance should not modify it. If you need to constrain
the list of supported rates use snd_pcm_hw_constraint_list().
> +
> + /* set the codec system clock for DAC and ADC */
> + ret = snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK_XTAL,
> + MCLK_RATE, SND_SOC_CLOCK_IN);
> + if (ret < 0) {
> + dev_err(dev, "ASoC: Failed to set WM8731 SYSCLK: %d\n", ret);
> + return ret;
> + }
> +
> + /* signal a DAPM event */
> + snd_soc_dapm_sync(dapm);
This should not be necessary.
> + return 0;
> +}
More information about the linux-arm-kernel
mailing list