ALSA: usb-audio: add quirk for MacroSilicon MS2109
These devices claim to be 96kHz mono, but actually are 48kHz stereo with swapped channels and unaligned transfers. Cc: stable@vger.kernel.org Signed-off-by: Hector Martin <marcan@marcan.st> Link: https://lore.kernel.org/r/20200702071433.237843-1-marcan@marcan.st Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
781c90c034
commit
e337bf19f6
@ -3633,4 +3633,56 @@ ALC1220_VB_DESKTOP(0x26ce, 0x0a01), /* Asrock TRX40 Creator */
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MacroSilicon MS2109 based HDMI capture cards
|
||||||
|
*
|
||||||
|
* These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
|
||||||
|
* They also need QUIRK_AUDIO_ALIGN_TRANSFER, which makes one wonder if
|
||||||
|
* they pretend to be 96kHz mono as a workaround for stereo being broken
|
||||||
|
* by that...
|
||||||
|
*
|
||||||
|
* They also have swapped L-R channels, but that's for userspace to deal
|
||||||
|
* with.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
USB_DEVICE(0x534d, 0x2109),
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "MacroSilicon",
|
||||||
|
.product_name = "MS2109",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_COMPOSITE,
|
||||||
|
.data = &(const struct snd_usb_audio_quirk[]) {
|
||||||
|
{
|
||||||
|
.ifnum = 2,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ifnum = 2,
|
||||||
|
.type = QUIRK_AUDIO_STANDARD_MIXER,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ifnum = 3,
|
||||||
|
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
||||||
|
.data = &(const struct audioformat) {
|
||||||
|
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
|
.channels = 2,
|
||||||
|
.iface = 3,
|
||||||
|
.altsetting = 1,
|
||||||
|
.altset_idx = 1,
|
||||||
|
.attributes = 0,
|
||||||
|
.endpoint = 0x82,
|
||||||
|
.ep_attr = USB_ENDPOINT_XFER_ISOC |
|
||||||
|
USB_ENDPOINT_SYNC_ASYNC,
|
||||||
|
.rates = SNDRV_PCM_RATE_CONTINUOUS,
|
||||||
|
.rate_min = 48000,
|
||||||
|
.rate_max = 48000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ifnum = -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
#undef USB_DEVICE_VENDOR_SPEC
|
#undef USB_DEVICE_VENDOR_SPEC
|
||||||
|
Loading…
Reference in New Issue
Block a user