aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Mack <zonque@gmail.com>2011-04-11 11:56:32 -0400
committerTakashi Iwai <tiwai@suse.de>2011-04-14 06:06:02 -0400
commit9cdc352936311eea55624cbabafda296b99ff137 (patch)
tree5ad4423410d7aca8da0e8bf3c40c40d24aeb6d73
parente217b960e4f82610946fcad764b8af017a4811c0 (diff)
ALSA: usb-audio: Add quirks for Audio Kontrol 6
This new device by Native Instruments is also compliant to the USB standard v2.0, but hides this detail at when connected. It needs the same boot quirks than other models, and also has two non-class-compliant mixer controls. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/usb/mixer_quirks.c17
-rw-r--r--sound/usb/quirks-table.h6
-rw-r--r--sound/usb/quirks.c1
3 files changed, 24 insertions, 0 deletions
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index 73dcc8256bc0..4a7ad7ed62f7 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -398,6 +398,17 @@ static int snd_nativeinstruments_control_put(struct snd_kcontrol *kcontrol,
398 return 0; 398 return 0;
399} 399}
400 400
401static struct snd_kcontrol_new snd_nativeinstruments_ak6_mixers[] = {
402 {
403 .name = "Direct Monitor Channel 1+2",
404 .private_value = _MAKE_NI_CONTROL(0x03, 0x03),
405 },
406 {
407 .name = "Direct Monitor Channel 3+4",
408 .private_value = _MAKE_NI_CONTROL(0x03, 0x05),
409 },
410};
411
401static struct snd_kcontrol_new snd_nativeinstruments_ta6_mixers[] = { 412static struct snd_kcontrol_new snd_nativeinstruments_ta6_mixers[] = {
402 { 413 {
403 .name = "Direct Thru Channel A", 414 .name = "Direct Thru Channel A",
@@ -526,6 +537,12 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
526 err = snd_xonar_u1_controls_create(mixer); 537 err = snd_xonar_u1_controls_create(mixer);
527 break; 538 break;
528 539
540 case USB_ID(0x17cc, 0x1001): /* Audio Kontrol 6 */
541 err = snd_nativeinstruments_create_mixer(mixer,
542 snd_nativeinstruments_ak6_mixers,
543 ARRAY_SIZE(snd_nativeinstruments_ak6_mixers));
544 break;
545
529 case USB_ID(0x17cc, 0x1011): /* Traktor Audio 6 */ 546 case USB_ID(0x17cc, 0x1011): /* Traktor Audio 6 */
530 err = snd_nativeinstruments_create_mixer(mixer, 547 err = snd_nativeinstruments_create_mixer(mixer,
531 snd_nativeinstruments_ta6_mixers, 548 snd_nativeinstruments_ta6_mixers,
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index c66d3f64dcf8..54e18c181a12 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -2332,6 +2332,12 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2332 2332
2333/* Native Instruments MK2 series */ 2333/* Native Instruments MK2 series */
2334{ 2334{
2335 /* Audio Kontrol 6 */
2336 .match_flags = USB_DEVICE_ID_MATCH_DEVICE,
2337 .idVendor = 0x17cc,
2338 .idProduct = 0x1000,
2339},
2340{
2335 /* Traktor Audio 6 */ 2341 /* Traktor Audio 6 */
2336 .match_flags = USB_DEVICE_ID_MATCH_DEVICE, 2342 .match_flags = USB_DEVICE_ID_MATCH_DEVICE,
2337 .idVendor = 0x17cc, 2343 .idVendor = 0x17cc,
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 355759bad581..2452edd2f141 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -539,6 +539,7 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
539 /* Access Music VirusTI Desktop */ 539 /* Access Music VirusTI Desktop */
540 return snd_usb_accessmusic_boot_quirk(dev); 540 return snd_usb_accessmusic_boot_quirk(dev);
541 541
542 case USB_ID(0x17cc, 0x1000): /* Audio Kontrol 6 */
542 case USB_ID(0x17cc, 0x1010): /* Traktor Audio 6 */ 543 case USB_ID(0x17cc, 0x1010): /* Traktor Audio 6 */
543 case USB_ID(0x17cc, 0x1020): /* Traktor Audio 10 */ 544 case USB_ID(0x17cc, 0x1020): /* Traktor Audio 10 */
544 return snd_usb_nativeinstruments_boot_quirk(dev); 545 return snd_usb_nativeinstruments_boot_quirk(dev);