Merge tag 'sound-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[sfrench/cifs-2.6.git] / sound / usb / quirks-table.h
index 86e80916a029fffdd6cbb492b5b8fe09b291dcd8..5600143ff66020dc1d4f24e2b14dafb965b928f3 100644 (file)
@@ -2770,6 +2770,90 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                .type = QUIRK_MIDI_NOVATION
        }
 },
+{
+       /*
+        * Focusrite Scarlett Solo 2nd generation
+        * Reports that playback should use Synch: Synchronous
+        * while still providing a feedback endpoint. Synchronous causes
+        * snapping on some sample rates.
+        * Force it to use Synch: Asynchronous.
+        */
+       USB_DEVICE(0x1235, 0x8205),
+       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
+               .ifnum = QUIRK_ANY_INTERFACE,
+               .type = QUIRK_COMPOSITE,
+               .data = (const struct snd_usb_audio_quirk[]) {
+                       {
+                               .ifnum = 1,
+                               .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+                               .data = & (const struct audioformat) {
+                                       .formats = SNDRV_PCM_FMTBIT_S32_LE,
+                                       .channels = 2,
+                                       .iface = 1,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .attributes = 0,
+                                       .endpoint = 0x01,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC |
+                                                  USB_ENDPOINT_SYNC_ASYNC,
+                                       .protocol = UAC_VERSION_2,
+                                       .rates = SNDRV_PCM_RATE_44100 |
+                                                SNDRV_PCM_RATE_48000 |
+                                                SNDRV_PCM_RATE_88200 |
+                                                SNDRV_PCM_RATE_96000 |
+                                                SNDRV_PCM_RATE_176400 |
+                                                SNDRV_PCM_RATE_192000,
+                                       .rate_min = 44100,
+                                       .rate_max = 192000,
+                                       .nr_rates = 6,
+                                       .rate_table = (unsigned int[]) {
+                                               44100, 48000, 88200,
+                                               96000, 176400, 192000
+                                       },
+                                       .clock = 41
+                               }
+                       },
+                       {
+                               .ifnum = 2,
+                               .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+                               .data = & (const struct audioformat) {
+                                       .formats = SNDRV_PCM_FMTBIT_S32_LE,
+                                       .channels = 2,
+                                       .iface = 2,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .attributes = 0,
+                                       .endpoint = 0x82,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC |
+                                                  USB_ENDPOINT_SYNC_ASYNC |
+                                                  USB_ENDPOINT_USAGE_IMPLICIT_FB,
+                                       .protocol = UAC_VERSION_2,
+                                       .rates = SNDRV_PCM_RATE_44100 |
+                                                SNDRV_PCM_RATE_48000 |
+                                                SNDRV_PCM_RATE_88200 |
+                                                SNDRV_PCM_RATE_96000 |
+                                                SNDRV_PCM_RATE_176400 |
+                                                SNDRV_PCM_RATE_192000,
+                                       .rate_min = 44100,
+                                       .rate_max = 192000,
+                                       .nr_rates = 6,
+                                       .rate_table = (unsigned int[]) {
+                                               44100, 48000, 88200,
+                                               96000, 176400, 192000
+                                       },
+                                       .clock = 41
+                               }
+                       },
+                       {
+                               .ifnum = 3,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = -1
+                       }
+               }
+       }
+},
 
 /* Access Music devices */
 {
@@ -2887,6 +2971,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                .product_name = pname, \
                .ifnum = QUIRK_ANY_INTERFACE, \
                .type = QUIRK_AUDIO_ALIGN_TRANSFER, \
+               .shares_media_device = 1, \
        } \
 }