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

Takashi Iwai tiwai at suse.de
Tue Nov 8 17:55:30 CET 2011


At Tue, 08 Nov 2011 17:46:57 +0100,
Alexey Fisher wrote:
> 
> 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!

Thanks for a quick test.  Now I queued the patch up for the next pull
request.


Takashi


More information about the Alsa-devel mailing list