[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