[alsa-devel] [PATCH - ice1724 1/4] ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations

Pavel Hofman pavel.hofman at ivitera.com
Mon Jan 9 08:36:54 CET 2012



Dne 8.1.2012 10:12, Takashi Iwai napsal(a):
> At Thu,  5 Jan 2012 22:01:55 +0100,
> pavel.hofman at ivitera.com wrote:
>>
>> From: Pavel Hofman <pavel.hofman at ivitera.com>
>>
>> Add the capture pcm only if there is at least one ADC configured in
>> the SYSCONF register.
>>
>> Signed-off-by: Pavel Hofman <pavel.hofman at ivitera.com>
>>
>> diff --git a/pci/ice1712/ice1724.c b/pci/ice1712/ice1724.c
>> index 4353e76..2a0be2c 100644
>> --- a/pci/ice1712/ice1724.c
>> +++ b/pci/ice1712/ice1724.c
>> @@ -1117,14 +1117,18 @@ static struct snd_pcm_ops snd_vt1724_capture_pro_ops = {
>>  static int __devinit snd_vt1724_pcm_profi(struct snd_ice1712 *ice, int device)
>>  {
>>  	struct snd_pcm *pcm;
>> -	int err;
>> +	int capt, err;
>>  
>> -	err = snd_pcm_new(ice->card, "ICE1724", device, 1, 1, &pcm);
>> +	capt = (~ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_ADC_MASK) ?
>> +		1 : 0;
> 
> Are you sure that this is correct?  I thought the value 0 means 1 ADC,
> 1 is two ADCS, etc.
> 

I think it is correct. This is what the datasheet says:

CCS04: System Configuration Register

bits 3:2

00: one stereo ADC connected
01: two stereo ADCs connected
10: one stereo ADC and a S/PDIF receiver connected
11: No physical inputs


I have two soundcards, one with 10 (ADC + SPDIF in), another with 11 (no
ADC), the code seems to work fine.

Thanks,

Pavel.


More information about the Alsa-devel mailing list