ASoC: S3C24XX : Align the peroid size to the buffer size
authorShine Liu <shinel@foxmail.com>
Thu, 20 Aug 2009 15:02:23 +0000 (23:02 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 20 Aug 2009 18:42:40 +0000 (19:42 +0100)
> Then it's a driver bug.  If unaligned period size is allowed, it means
> that the irq is really generated in that period, not at the buffer
> boundary.  Otherwise, it must have a proper hw-constraint to align the
> period size to the buffer size.

This patch will fix the bug metioned in the above mail. Force the peroid
size to be aligned with the buffer size.

Based and tested on linux-2.6.31-rc6.

Signed-off-by: Shine Liu <shinel@foxmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/s3c24xx-pcm.c

index eecfa5eba06b0bf0b450d518368df1fe90cc52f6..8a931964ce467fa009f09d0977602d3bfb46a7fe 100644 (file)
@@ -318,6 +318,7 @@ static int s3c24xx_pcm_open(struct snd_pcm_substream *substream)
 
        pr_debug("Entered %s\n", __func__);
 
+       snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
        snd_soc_set_runtime_hwparams(substream, &s3c24xx_pcm_hardware);
 
        prtd = kzalloc(sizeof(struct s3c24xx_runtime_data), GFP_KERNEL);