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 eecfa5e..8a93196 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);