aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/mixer_maps.c10
-rw-r--r--sound/usb/quirks.c14
2 files changed, 24 insertions, 0 deletions
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index cc2dd1f0decb..32af6b741ef5 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -322,6 +322,12 @@ static struct usbmix_name_map hercules_usb51_map[] = {
322 { 0 } /* terminator */ 322 { 0 } /* terminator */
323}; 323};
324 324
325/* Plantronics Gamecom 780 has a broken volume control, better to disable it */
326static struct usbmix_name_map gamecom780_map[] = {
327 { 9, NULL }, /* FU, speaker out */
328 {}
329};
330
325/* 331/*
326 * Control map entries 332 * Control map entries
327 */ 333 */
@@ -358,6 +364,10 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
358 .id = USB_ID(0x046d, 0x09a4), 364 .id = USB_ID(0x046d, 0x09a4),
359 .ignore_ctl_error = 1, 365 .ignore_ctl_error = 1,
360 }, 366 },
367 { /* Plantronics GameCom 780 */
368 .id = USB_ID(0x047f, 0xc010),
369 .map = gamecom780_map,
370 },
361 { 371 {
362 /* Hercules DJ Console (Windows Edition) */ 372 /* Hercules DJ Console (Windows Edition) */
363 .id = USB_ID(0x06f8, 0xb000), 373 .id = USB_ID(0x06f8, 0xb000),
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 0df9ede99dfd..ede753685491 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -660,6 +660,18 @@ static int snd_usb_cm6206_boot_quirk(struct usb_device *dev)
660 return err; 660 return err;
661} 661}
662 662
663/* quirk for Plantronics GameCom 780 with CM6302 chip */
664static int snd_usb_gamecon780_boot_quirk(struct usb_device *dev)
665{
666 /* set the initial volume and don't change; other values are either
667 * too loud or silent due to firmware bug (bko#65251)
668 */
669 u8 buf[2] = { 0x74, 0xdc };
670 return snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), UAC_SET_CUR,
671 USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_OUT,
672 UAC_FU_VOLUME << 8, 9 << 8, buf, 2);
673}
674
663/* 675/*
664 * Novation Twitch DJ controller 676 * Novation Twitch DJ controller
665 */ 677 */
@@ -986,6 +998,8 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
986 return snd_usb_nativeinstruments_boot_quirk(dev); 998 return snd_usb_nativeinstruments_boot_quirk(dev);
987 case USB_ID(0x0763, 0x2012): /* M-Audio Fast Track Pro USB */ 999 case USB_ID(0x0763, 0x2012): /* M-Audio Fast Track Pro USB */
988 return snd_usb_fasttrackpro_boot_quirk(dev); 1000 return snd_usb_fasttrackpro_boot_quirk(dev);
1001 case USB_ID(0x047f, 0xc010): /* Plantronics Gamecom 780 */
1002 return snd_usb_gamecon780_boot_quirk(dev);
989 } 1003 }
990 1004
991 return 0; 1005 return 0;