diff options
author | Mark Brown <broonie@kernel.org> | 2019-05-20 11:53:50 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-05-20 11:53:50 +0100 |
commit | 1c7c3237c0cc4ad3c7b0df458290c8e2a652f178 (patch) | |
tree | d5d027d4dbdae390c736a82e16c57966214e2c0a /sound/usb/quirks-table.h | |
parent | bfa8130f50a63563eae10ef933fe01b50b3e87a0 (diff) | |
parent | a188339ca5a396acc588e5851ed7e19f66b0ebd9 (diff) |
Merge tag 'v5.2-rc1' into asoc-5.3
Linux 5.2-rc1
Diffstat (limited to 'sound/usb/quirks-table.h')
-rw-r--r-- | sound/usb/quirks-table.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 86e80916a029..5600143ff660 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -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, \ } \ } |