Messages in this thread | | | Date | Mon, 17 Mar 2008 14:21:16 +0100 | From | Takashi Iwai <> | Subject | Re: [PATCH] at73c213: Fix DMA size at the end of DMA buffer |
| |
At Mon, 17 Mar 2008 22:00:27 +0900 (JST), Atsushi Nemoto wrote: > > On Fri, 14 Mar 2008 14:39:42 +0100, Takashi Iwai <tiwai@suse.de> wrote: > > Add the following constraint in the open callback: > > > > err = snd_pcm_hw_constraint_integer(runtime, > > SNDRV_PCM_HW_PARAM_PERIODS); > > if (err < 0) > > return err; > > > > This will guarantee that the period size fits with the buffer size. > > Thank you! It works fine. Here is a new patch.
Thanks for the patch. So, I should revert your last patch, right? It's already on ALSA tree...
Takashi
> > ------------------------------------------------------ > Subject: [PATCH] at73c213: Add constraints for periods value > From: Atsushi Nemoto <anemo@mba.ocn.ne.jp> > > 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 <anemo@mba.ocn.ne.jp> > --- > This patch obsoletes a patch titled "at73c213: fix DMA size at the end > of DMA buffer" in git-alsa-tiwai.patch in mm tree. > > diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c > index 7c077c6..9a5c118 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; >
| |