]> Git Repo - J-linux.git/commitdiff
ALSA: usb - Quirk to disable master volume control in PCM2702
authorJavier Kohen <[email protected]>
Tue, 17 Nov 2009 14:36:13 +0000 (15:36 +0100)
committerTakashi Iwai <[email protected]>
Tue, 17 Nov 2009 14:49:26 +0000 (15:49 +0100)
Disable the master volume control in the PCM2702 chipset.

The datasheet documents two independent channel volume controls, one
master mute control and one master volume control. All controls are
fully functional except for the master volume control, which returns
USB stalls on all GET requests.

Signed-off-by: Javier Kohen <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
sound/usb/usbmixer.c

index 9efcfd08d747b1c430ae17f9429fda3b57974a0b..c998220b99c62e30c4d32276478ed7e15c2ca7c5 100644 (file)
@@ -1071,6 +1071,15 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, unsig
        channels = (ftr[0] - 7) / csize - 1;
 
        master_bits = snd_usb_combine_bytes(ftr + 6, csize);
+       /* master configuration quirks */
+       switch (state->chip->usb_id) {
+       case USB_ID(0x08bb, 0x2702):
+               snd_printk(KERN_INFO
+                          "usbmixer: master volume quirk for PCM2702 chip\n");
+               /* disable non-functional volume control */
+               master_bits &= ~(1 << (USB_FEATURE_VOLUME - 1));
+               break;
+       }
        if (channels > 0)
                first_ch_bits = snd_usb_combine_bytes(ftr + 6 + csize, csize);
        else
This page took 0.048431 seconds and 4 git commands to generate.