diff options
-rw-r--r-- | sound/usb/quirks-table.h | 40 | ||||
-rw-r--r-- | sound/usb/quirks.c | 9 |
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 | */ |
678 | static int snd_usb_twitch_boot_quirk(struct usb_device *dev) | 679 | static 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 */ |