aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorEduard Gilmutdinov <edgilmutdinov@gmail.com>2013-12-20 03:06:58 -0500
committerTakashi Iwai <tiwai@suse.de>2014-01-14 07:56:31 -0500
commit11e424e88bd493b5d55d73d96c82bd889002ef30 (patch)
tree222a2bd59eefdbf8fe99bd930746047b08a373ed /sound/usb
parent493a52a9b6645f61954580c7d4bd52fa62110934 (diff)
ALSA: usb-audio: Add support for Focusrite Saffire 6 USB
Signed-off-by: Eduard Gilmutdinov <edgilmutdinov@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/quirks-table.h40
-rw-r--r--sound/usb/quirks.c9
2 files changed, 45 insertions, 4 deletions
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index f5f0595ef9c7..34547800b0f7 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -2569,6 +2569,46 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2569 .type = QUIRK_MIDI_NOVATION 2569 .type = QUIRK_MIDI_NOVATION
2570 } 2570 }
2571}, 2571},
2572{
2573 USB_DEVICE(0x1235, 0x0010),
2574 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
2575 .vendor_name = "Focusrite",
2576 .product_name = "Saffire 6 USB",
2577 .ifnum = QUIRK_ANY_INTERFACE,
2578 .type = QUIRK_COMPOSITE,
2579 .data = (const struct snd_usb_audio_quirk[]) {
2580 {
2581 .ifnum = 0,
2582 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
2583 .data = &(const struct audioformat) {
2584 .formats = SNDRV_PCM_FMTBIT_S24_3LE,
2585 .channels = 4,
2586 .iface = 0,
2587 .altsetting = 1,
2588 .altset_idx = 1,
2589 .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
2590 .endpoint = 0x01,
2591 .ep_attr = USB_ENDPOINT_XFER_ISOC,
2592 .rates = SNDRV_PCM_RATE_44100 |
2593 SNDRV_PCM_RATE_48000,
2594 .rate_min = 44100,
2595 .rate_max = 48000,
2596 .nr_rates = 2,
2597 .rate_table = (unsigned int[]) {
2598 44100, 48000
2599 }
2600 }
2601 },
2602 {
2603 .ifnum = 1,
2604 .type = QUIRK_MIDI_RAW_BYTES
2605 },
2606 {
2607 .ifnum = -1
2608 }
2609 }
2610 }
2611},
2572 2612
2573/* Access Music devices */ 2613/* Access Music devices */
2574{ 2614{
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index ede753685491..89730707614c 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -674,8 +674,9 @@ static int snd_usb_gamecon780_boot_quirk(struct usb_device *dev)
674 674
675/* 675/*
676 * Novation Twitch DJ controller 676 * Novation Twitch DJ controller
677 * Focusrite Novation Saffire 6 USB audio card
677 */ 678 */
678static int snd_usb_twitch_boot_quirk(struct usb_device *dev) 679static int snd_usb_novation_boot_quirk(struct usb_device *dev)
679{ 680{
680 /* preemptively set up the device because otherwise the 681 /* preemptively set up the device because otherwise the
681 * raw MIDI endpoints are not active */ 682 * raw MIDI endpoints are not active */
@@ -984,9 +985,9 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
984 /* Digidesign Mbox 2 */ 985 /* Digidesign Mbox 2 */
985 return snd_usb_mbox2_boot_quirk(dev); 986 return snd_usb_mbox2_boot_quirk(dev);
986 987
987 case USB_ID(0x1235, 0x0018): 988 case USB_ID(0x1235, 0x0010): /* Focusrite Novation Saffire 6 USB */
988 /* Focusrite Novation Twitch */ 989 case USB_ID(0x1235, 0x0018): /* Focusrite Novation Twitch */
989 return snd_usb_twitch_boot_quirk(dev); 990 return snd_usb_novation_boot_quirk(dev);
990 991
991 case USB_ID(0x133e, 0x0815): 992 case USB_ID(0x133e, 0x0815):
992 /* Access Music VirusTI Desktop */ 993 /* Access Music VirusTI Desktop */