[alsa-devel] [PATCH] add number of periods constraint to snd-aoa [try 2]
From: Heikki Lindholm holindho@cs.helsinki.fi
The aoa driver is not specifying constraints on number of periods, and, it seems, it might end with a non-integer number, which it cannot deal with. Fix by adding a proper constraint.
Signed-off-by: Heikki Lindholm holindho@cs.helsinki.fi --- try 2: previous try didn't work on anything but Onyx
diff -r 1b54a8725ded aoa/soundbus/i2sbus/i2sbus-pcm.c --- a/aoa/soundbus/i2sbus/i2sbus-pcm.c Wed Nov 14 17:07:17 2007 +0100 +++ b/aoa/soundbus/i2sbus/i2sbus-pcm.c Fri Nov 23 11:53:38 2007 +0200 @@ -194,6 +194,12 @@ static int i2sbus_pcm_open(struct i2sbus hw->period_bytes_max = 16384; hw->periods_min = 3; hw->periods_max = MAX_DBDMA_COMMANDS; + if ((err = snd_pcm_hw_constraint_integer( + pi->substream->runtime, + SNDRV_PCM_HW_PARAM_PERIODS)) < 0) { + result = err; + goto out_unlock; + } list_for_each_entry(cii, &sdev->codec_list, list) { if (cii->codec->open) { err = cii->codec->open(cii, pi->substream);
At Fri, 23 Nov 2007 12:01:04 +0200 (EET), Heikki O Lindholm wrote:
From: Heikki Lindholm holindho@cs.helsinki.fi
The aoa driver is not specifying constraints on number of periods, and, it seems, it might end with a non-integer number, which it cannot deal with. Fix by adding a proper constraint.
Signed-off-by: Heikki Lindholm holindho@cs.helsinki.fi
try 2: previous try didn't work on anything but Onyx
Heh, I replied too fast. I think it's almost as same as my patch...
Takashi
diff -r 1b54a8725ded aoa/soundbus/i2sbus/i2sbus-pcm.c --- a/aoa/soundbus/i2sbus/i2sbus-pcm.c Wed Nov 14 17:07:17 2007 +0100 +++ b/aoa/soundbus/i2sbus/i2sbus-pcm.c Fri Nov 23 11:53:38 2007 +0200 @@ -194,6 +194,12 @@ static int i2sbus_pcm_open(struct i2sbus hw->period_bytes_max = 16384; hw->periods_min = 3; hw->periods_max = MAX_DBDMA_COMMANDS;
- if ((err = snd_pcm_hw_constraint_integer(
pi->substream->runtime,
SNDRV_PCM_HW_PARAM_PERIODS)) < 0) {
result = err;
goto out_unlock;
- } list_for_each_entry(cii, &sdev->codec_list, list) { if (cii->codec->open) { err = cii->codec->open(cii, pi->substream);
participants (2)
-
Heikki O Lindholm
-
Takashi Iwai