From: Atsushi Nemoto Date: Mon, 17 Mar 2008 13:36:24 +0000 (+0100) Subject: [ALSA] at73c213: Add constraints for periods value X-Git-Tag: v2.6.26-rc1~1087^2~119 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=f5e09ef0985ff01af6b4a12954840467f153a41c;p=linux-2.6-omap-h63xx.git [ALSA] at73c213: Add constraints for periods value The interrupt handler always provide runtime->period_size data, so it works correctly only if buffer_size was a multiple of period_size. This patch fixes periodic click noise. Signed-off-by: Atsushi Nemoto Signed-off-by: Takashi Iwai --- diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c index aa571152f03..09802e8a6fb 100644 --- a/sound/spi/at73c213.c +++ b/sound/spi/at73c213.c @@ -210,7 +210,13 @@ static int snd_at73c213_pcm_open(struct snd_pcm_substream *substream) { struct snd_at73c213 *chip = snd_pcm_substream_chip(substream); struct snd_pcm_runtime *runtime = substream->runtime; + int err; + /* ensure buffer_size is a multiple of period_size */ + err = snd_pcm_hw_constraint_integer(runtime, + SNDRV_PCM_HW_PARAM_PERIODS); + if (err < 0) + return err; snd_at73c213_playback_hw.rate_min = chip->bitrate; snd_at73c213_playback_hw.rate_max = chip->bitrate; runtime->hw = snd_at73c213_playback_hw;