@@ -3633,4 +3633,56 @@ ALC1220_VB_DESKTOP(0x26ce, 0x0a01), /* Asrock TRX40 Creator */
3633
3633
}
3634
3634
},
3635
3635
3636
+ /*
3637
+ * MacroSilicon MS2109 based HDMI capture cards
3638
+ *
3639
+ * These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
3640
+ * They also need QUIRK_AUDIO_ALIGN_TRANSFER, which makes one wonder if
3641
+ * they pretend to be 96kHz mono as a workaround for stereo being broken
3642
+ * by that...
3643
+ *
3644
+ * They also have swapped L-R channels, but that's for userspace to deal
3645
+ * with.
3646
+ */
3647
+ {
3648
+ USB_DEVICE (0x534d , 0x2109 ),
3649
+ .driver_info = (unsigned long ) & (const struct snd_usb_audio_quirk ) {
3650
+ .vendor_name = "MacroSilicon" ,
3651
+ .product_name = "MS2109" ,
3652
+ .ifnum = QUIRK_ANY_INTERFACE ,
3653
+ .type = QUIRK_COMPOSITE ,
3654
+ .data = & (const struct snd_usb_audio_quirk []) {
3655
+ {
3656
+ .ifnum = 2 ,
3657
+ .type = QUIRK_AUDIO_ALIGN_TRANSFER ,
3658
+ },
3659
+ {
3660
+ .ifnum = 2 ,
3661
+ .type = QUIRK_AUDIO_STANDARD_MIXER ,
3662
+ },
3663
+ {
3664
+ .ifnum = 3 ,
3665
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT ,
3666
+ .data = & (const struct audioformat ) {
3667
+ .formats = SNDRV_PCM_FMTBIT_S16_LE ,
3668
+ .channels = 2 ,
3669
+ .iface = 3 ,
3670
+ .altsetting = 1 ,
3671
+ .altset_idx = 1 ,
3672
+ .attributes = 0 ,
3673
+ .endpoint = 0x82 ,
3674
+ .ep_attr = USB_ENDPOINT_XFER_ISOC |
3675
+ USB_ENDPOINT_SYNC_ASYNC ,
3676
+ .rates = SNDRV_PCM_RATE_CONTINUOUS ,
3677
+ .rate_min = 48000 ,
3678
+ .rate_max = 48000 ,
3679
+ }
3680
+ },
3681
+ {
3682
+ .ifnum = -1
3683
+ }
3684
+ }
3685
+ }
3686
+ },
3687
+
3636
3688
#undef USB_DEVICE_VENDOR_SPEC
0 commit comments