[alsa-devel] [regression] probably in mixer.c code

Alexey Fisher bug-track at fisher-privat.net
Tue Nov 8 17:46:57 CET 2011


Am 08.11.2011 15:54, schrieb Takashi Iwai:
> At Tue, 08 Nov 2011 15:32:10 +0100,
> Alexey Fisher wrote:
>>
>> Am 08.11.2011 14:09, schrieb Takashi Iwai:
>>> At Tue, 08 Nov 2011 14:05:32 +0100,
>>> Takashi Iwai wrote:
>>>>
>>>> At Tue, 08 Nov 2011 13:39:38 +0100,
>>>> Alexey Fisher wrote:
>>>>>
>>>>> Am 08.11.2011 13:11, schrieb Takashi Iwai:
>>>>>> At Tue, 08 Nov 2011 12:25:06 +0100,
>>>>>> Alexey Fisher wrote:
>>>>>>>
>>>>>>> Am 08.11.2011 10:59, schrieb Takashi Iwai:
>>>>>>>> At Tue, 08 Nov 2011 09:49:13 +0100,
>>>>>>>> Alexey Fisher wrote:
>>>>>>>>>
>>>>>>>>> Hallo all, Takashi,
>>>>>>>>>
>>>>>>>>> there is one regression in current linux main tree:
>>>>>>>>>
>>>>>>>>> cval->res quirks do not work any more. See usb/mixer.c:1150
>>>>>>>>> Are there was some work in this area or may be some one bisected this
>>>>>>>>> bug down?
>>>>>>>>
>>>>>>>> Are you referring to the device 046d:09a4, which sets the mixer range
>>>>>>>> manually?  If yes, does the patch below work?
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> No, i referring to devices 046d:0991, 046d:081d, i don't have access to
>>>>>>> 046d:09a4.
>>>>>>>
>>>>>>> This part is broken for me:
>>>>>>>             case USB_ID(0x046d, 0x0991):
>>>>>>>             /* Most audio usb devices lie about volume resolution.
>>>>>>>              * Most Logitech webcams have res = 384.
>>>>>>>              * Proboly there is some logitech magic behind this number --fishor
>>>>>>>              */
>>>>>>>                     if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
>>>>>>>                             snd_printk(KERN_INFO
>>>>>>>                                     "set resolution quirk: cval->res = 384\n");
>>>>>>>                             cval->res = 384;
>>>>>>>                     }
>>>>>>>                     break;
>>>>>>
>>>>>> OK, so _what_ is actually broken?  Do you see the message but
>>>>>> cval->res is overridden later?
>>>>>
>>>>> yes.
>>>>
>>>> To which value?
>>>
>>> Also you should have got a message like "0:1: cannot get min/max
>>> values for ..." when built with CONFIG_SND_DEBUG.  Check whether you
>>> get it actually.
>>
>> It sets the res value to 1.
>> I get fallowing message after i plug in the webcam:
>>
>> [  132.878150] usb 1-3.2: new high-speed USB device number 8 using ehci_hcd
>> [  133.087255] usb 1-3.2: New USB device found, idVendor=046d,
>> idProduct=0991
>> [  133.087259] usb 1-3.2: New USB device strings: Mfr=0, Product=0,
>> SerialNumber=2
>> [  133.087261] usb 1-3.2: SerialNumber: 9671DCEE
>> [  133.088428] uvcvideo: Found UVC 1.00 device<unnamed>  (046d:0991)
>> [  133.122400] input: UVC Camera (046d:0991) as
>> /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.2/1-3.2:1.0/input/input15
>> [  133.488506] ALSA mixer.c:817 5:2: cannot get min/max values for
>> control 2 (id 5)
>> [  133.488524] ALSA mixer.c:1168 set resolution quirk: cval->res = 384
>> [  133.488527] ALSA mixer.c:817 5:2: cannot get min/max values for
>> control 2 (id 5)
>> [  133.492187] ALSA mixer.c:817 5:2: cannot get min/max values for
>> control 2 (id 5)
>>
>>
>> With amixer i get this:
>> amixer -c U0x46d0x991
>> Simple mixer control 'Mic',0
>>     Capabilities: cvolume cvolume-joined cswitch cswitch-joined penum
>>     Capture channels: Mono
>>     Limits: Capture 0 - 3072
>>     Mono: Capture 2749 [89%] [28.73dB] [on]
>>
>>
>> But Limits should be 0-7 instead of 0-3072
>
> OK, then the problem is that the first few reads of min/max values
> failed, but cval->res quirk is applied only for the first read.
>
> Does the patch below fix?

Yes. Thanks a lot!


More information about the Alsa-devel mailing list