diff options
Diffstat (limited to 'sound/usb/usbmixer.c')
| -rw-r--r-- | sound/usb/usbmixer.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/usb/usbmixer.c b/sound/usb/usbmixer.c index 9efcfd08d747..c998220b99c6 100644 --- a/sound/usb/usbmixer.c +++ b/sound/usb/usbmixer.c | |||
| @@ -1071,6 +1071,15 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, unsig | |||
| 1071 | channels = (ftr[0] - 7) / csize - 1; | 1071 | channels = (ftr[0] - 7) / csize - 1; |
| 1072 | 1072 | ||
| 1073 | master_bits = snd_usb_combine_bytes(ftr + 6, csize); | 1073 | master_bits = snd_usb_combine_bytes(ftr + 6, csize); |
| 1074 | /* master configuration quirks */ | ||
| 1075 | switch (state->chip->usb_id) { | ||
| 1076 | case USB_ID(0x08bb, 0x2702): | ||
| 1077 | snd_printk(KERN_INFO | ||
| 1078 | "usbmixer: master volume quirk for PCM2702 chip\n"); | ||
| 1079 | /* disable non-functional volume control */ | ||
| 1080 | master_bits &= ~(1 << (USB_FEATURE_VOLUME - 1)); | ||
| 1081 | break; | ||
| 1082 | } | ||
| 1074 | if (channels > 0) | 1083 | if (channels > 0) |
| 1075 | first_ch_bits = snd_usb_combine_bytes(ftr + 6 + csize, csize); | 1084 | first_ch_bits = snd_usb_combine_bytes(ftr + 6 + csize, csize); |
| 1076 | else | 1085 | else |
