Re: [PATCH SND/USB]: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks.

From: Con Kolivas
Date: Fri Dec 09 2016 - 15:52:35 EST


On Friday, 9 December 2016 11:22:15 AM AEDT Takashi Iwai wrote:
> On Fri, 09 Dec 2016 05:15:57 +0100,
>
> Con Kolivas wrote:
> > The Logitech QuickCam Communicate Deluxe/S7500 microphone fails with the
> > following warning.
> >
> > [ 6.778995] usb 2-1.2.2.2: Warning! Unlikely big volume range (=3072),
> > cval->res is probably wrong.
> > [ 6.778996] usb 2-1.2.2.2: [5] FU [Mic Capture Volume] ch = 1, val =
> > 4608/7680/1
> >
> > Adding it to the list of devices in volume_control_quirks makes it work
> > properly, fixing related typo.
> >
> > Signed-off-by: Con Kolivas <kernel@xxxxxxxxxxx>
>
> Applied (with Cc to stable), thanks.

(Apologies for google mail defaulting to html, resending with a proper mail
client)

You're welcome. As there appear to be a lot of these devices from the same
manufacturer with the same error, and there are likely a lot of devices out
there that are missed from this whitelist, do you think it would be worthwhile
changing the code to detect the combination of unlikely big volume range and
usb vendor of 0x046d and automatically try using the volume_control_quirk on
them instead of a discrete whitelist?


Thanks,

Con

>
>
> Takashi
>
> > ---
> >
> > sound/usb/mixer.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> > index 2f8c388..4703cae 100644
> > --- a/sound/usb/mixer.c
> > +++ b/sound/usb/mixer.c
> > @@ -932,9 +932,10 @@ static void volume_control_quirks(struct
> > usb_mixer_elem_info *cval,>
> > case USB_ID(0x046d, 0x0826): /* HD Webcam c525 */
> > case USB_ID(0x046d, 0x08ca): /* Logitech Quickcam Fusion */
> >
> > case USB_ID(0x046d, 0x0991):
> > + case USB_ID(0x046d, 0x09a2): /* QuickCam Communicate Deluxe/S7500 */
> >
> > /* Most audio usb devices lie about volume resolution.
> >
> > * Most Logitech webcams have res = 384.
> >
> > - * Proboly there is some logitech magic behind this number --fishor
> > + * Probably there is some logitech magic behind this number --fishor
> >
> > */
> >
> > if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
> >
> > usb_audio_info(chip,


--
-ck