[alsa-devel] [PATCH] add number of periods constraint to snd-aoa [try 3]

Heikki Lindholm holindho at cs.helsinki.fi
Fri Nov 23 14:30:40 CET 2007


Johannes Berg kirjoitti:
> On Fri, 2007-11-23 at 14:25 +0200, Heikki O Lindholm wrote:
>> From: Heikki Lindholm <holindho at 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 at cs.helsinki.fi>
>> ---
>> try 3: fixed coding style
>>
>> 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 14:16:07 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;
>> +	err = snd_pcm_hw_constraint_integer(pi->substream->runtime,
>> +						SNDRV_PCM_HW_PARAM_PERIODS);
> 
> Personally, I prefer that indented to just after the opening
> parenthesis.
> 
> ;)
> 
>> +	if (err < 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);
> 
> 
> So what I'm not sure on... Why do we see the same behaviour with other
> drivers? Same bug?

I'd guess so. As I said, I couldn't reproduce the bug on the x86 
machines I tried. Anyways, the constraint system of ALSA being quite 
complex and the fact that buffer size and period size/number of periods 
are separated in ALSA do seem a like an open invitation to bugs like this.

-- Heikki Lindholm



More information about the Alsa-devel mailing list