aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/saa7134/saa7134-alsa.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index b9c5cf7dc849..ece177de72a5 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -457,7 +457,7 @@ static struct snd_pcm_hardware snd_card_saa7134_capture =
457 .buffer_bytes_max = (256*1024), 457 .buffer_bytes_max = (256*1024),
458 .period_bytes_min = 64, 458 .period_bytes_min = 64,
459 .period_bytes_max = (256*1024), 459 .period_bytes_max = (256*1024),
460 .periods_min = 2, 460 .periods_min = 4,
461 .periods_max = 1024, 461 .periods_max = 1024,
462}; 462};
463 463
@@ -491,7 +491,7 @@ static int snd_card_saa7134_hw_params(struct snd_pcm_substream * substream,
491 491
492 snd_assert(period_size >= 0x100 && period_size <= 0x10000, 492 snd_assert(period_size >= 0x100 && period_size <= 0x10000,
493 return -EINVAL); 493 return -EINVAL);
494 snd_assert(periods >= 2, return -EINVAL); 494 snd_assert(periods >= 4, return -EINVAL);
495 snd_assert(period_size * periods <= 1024 * 1024, return -EINVAL); 495 snd_assert(period_size * periods <= 1024 * 1024, return -EINVAL);
496 496
497 dev = saa7134->dev; 497 dev = saa7134->dev;
@@ -647,7 +647,14 @@ static int snd_card_saa7134_capture_open(struct snd_pcm_substream * substream)
647 saa7134_tvaudio_setmute(dev); 647 saa7134_tvaudio_setmute(dev);
648 } 648 }
649 649
650 if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) 650 err = snd_pcm_hw_constraint_integer(runtime,
651 SNDRV_PCM_HW_PARAM_PERIODS);
652 if (err < 0)
653 return err;
654
655 err = snd_pcm_hw_constraint_step(runtime, 0,
656 SNDRV_PCM_HW_PARAM_PERIODS, 2);
657 if (err < 0)
651 return err; 658 return err;
652 659
653 return 0; 660 return 0;