mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-01 03:54:02 +00:00
[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 <anemo@mba.ocn.ne.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
b32300a4ce
commit
f5e09ef098
1 changed files with 6 additions and 0 deletions
|
@ -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_at73c213 *chip = snd_pcm_substream_chip(substream);
|
||||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
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_min = chip->bitrate;
|
||||||
snd_at73c213_playback_hw.rate_max = chip->bitrate;
|
snd_at73c213_playback_hw.rate_max = chip->bitrate;
|
||||||
runtime->hw = snd_at73c213_playback_hw;
|
runtime->hw = snd_at73c213_playback_hw;
|
||||||
|
|
Loading…
Add table
Reference in a new issue