@@ -3673,176 +3673,181 @@ YAMAHA_DEVICE(0x7010, "UB99"),
3673
3673
}
3674
3674
}
3675
3675
},
3676
- {
3677
- /* Only claim interface 0 */
3678
- .match_flags = USB_DEVICE_ID_MATCH_VENDOR |
3679
- USB_DEVICE_ID_MATCH_PRODUCT |
3680
- USB_DEVICE_ID_MATCH_INT_CLASS |
3681
- USB_DEVICE_ID_MATCH_INT_NUMBER ,
3682
- .idVendor = 0x2a39 ,
3683
- .idProduct = 0x3f8c ,
3684
- .bInterfaceClass = USB_CLASS_VENDOR_SPEC ,
3685
- .bInterfaceNumber = 0 ,
3686
- QUIRK_DRIVER_INFO {
3687
- QUIRK_DATA_COMPOSITE {
3676
+ #define QUIRK_RME_DIGIFACE (pid ) \
3677
+ { \
3678
+ /* Only claim interface 0 */ \
3679
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | \
3680
+ USB_DEVICE_ID_MATCH_PRODUCT | \
3681
+ USB_DEVICE_ID_MATCH_INT_CLASS | \
3682
+ USB_DEVICE_ID_MATCH_INT_NUMBER , \
3683
+ .idVendor = 0x2a39 , \
3684
+ .idProduct = pid , \
3685
+ .bInterfaceClass = USB_CLASS_VENDOR_SPEC , \
3686
+ .bInterfaceNumber = 0 , \
3687
+ QUIRK_DRIVER_INFO { \
3688
+ QUIRK_DATA_COMPOSITE { \
3688
3689
/*
3689
3690
* Three modes depending on sample rate band,
3690
3691
* with different channel counts for in/out
3691
- */
3692
- { QUIRK_DATA_STANDARD_MIXER (0 ) },
3693
- {
3694
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3695
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3696
- .channels = 34 , // outputs
3697
- .fmt_bits = 24 ,
3698
- .iface = 0 ,
3699
- .altsetting = 1 ,
3700
- .altset_idx = 1 ,
3701
- .endpoint = 0x02 ,
3702
- .ep_idx = 1 ,
3703
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3704
- USB_ENDPOINT_SYNC_ASYNC ,
3705
- .rates = SNDRV_PCM_RATE_32000 |
3706
- SNDRV_PCM_RATE_44100 |
3707
- SNDRV_PCM_RATE_48000 ,
3708
- .rate_min = 32000 ,
3709
- .rate_max = 48000 ,
3710
- .nr_rates = 3 ,
3711
- .rate_table = (unsigned int []) {
3712
- 32000 , 44100 , 48000 ,
3713
- },
3714
- .sync_ep = 0x81 ,
3715
- .sync_iface = 0 ,
3716
- .sync_altsetting = 1 ,
3717
- .sync_ep_idx = 0 ,
3718
- .implicit_fb = 1 ,
3719
- },
3720
- },
3721
- {
3722
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3723
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3724
- .channels = 18 , // outputs
3725
- .fmt_bits = 24 ,
3726
- .iface = 0 ,
3727
- .altsetting = 1 ,
3728
- .altset_idx = 1 ,
3729
- .endpoint = 0x02 ,
3730
- .ep_idx = 1 ,
3731
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3732
- USB_ENDPOINT_SYNC_ASYNC ,
3733
- .rates = SNDRV_PCM_RATE_64000 |
3734
- SNDRV_PCM_RATE_88200 |
3735
- SNDRV_PCM_RATE_96000 ,
3736
- .rate_min = 64000 ,
3737
- .rate_max = 96000 ,
3738
- .nr_rates = 3 ,
3739
- .rate_table = (unsigned int []) {
3740
- 64000 , 88200 , 96000 ,
3741
- },
3742
- .sync_ep = 0x81 ,
3743
- .sync_iface = 0 ,
3744
- .sync_altsetting = 1 ,
3745
- .sync_ep_idx = 0 ,
3746
- .implicit_fb = 1 ,
3747
- },
3748
- },
3749
- {
3750
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3751
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3752
- .channels = 10 , // outputs
3753
- .fmt_bits = 24 ,
3754
- .iface = 0 ,
3755
- .altsetting = 1 ,
3756
- .altset_idx = 1 ,
3757
- .endpoint = 0x02 ,
3758
- .ep_idx = 1 ,
3759
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3760
- USB_ENDPOINT_SYNC_ASYNC ,
3761
- .rates = SNDRV_PCM_RATE_KNOT |
3762
- SNDRV_PCM_RATE_176400 |
3763
- SNDRV_PCM_RATE_192000 ,
3764
- .rate_min = 128000 ,
3765
- .rate_max = 192000 ,
3766
- .nr_rates = 3 ,
3767
- .rate_table = (unsigned int []) {
3768
- 128000 , 176400 , 192000 ,
3769
- },
3770
- .sync_ep = 0x81 ,
3771
- .sync_iface = 0 ,
3772
- .sync_altsetting = 1 ,
3773
- .sync_ep_idx = 0 ,
3774
- .implicit_fb = 1 ,
3775
- },
3776
- },
3777
- {
3778
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3779
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3780
- .channels = 32 , // inputs
3781
- .fmt_bits = 24 ,
3782
- .iface = 0 ,
3783
- .altsetting = 1 ,
3784
- .altset_idx = 1 ,
3785
- .endpoint = 0x81 ,
3786
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3787
- USB_ENDPOINT_SYNC_ASYNC ,
3788
- .rates = SNDRV_PCM_RATE_32000 |
3789
- SNDRV_PCM_RATE_44100 |
3790
- SNDRV_PCM_RATE_48000 ,
3791
- .rate_min = 32000 ,
3792
- .rate_max = 48000 ,
3793
- .nr_rates = 3 ,
3794
- .rate_table = (unsigned int []) {
3795
- 32000 , 44100 , 48000 ,
3796
- }
3797
- }
3798
- },
3799
- {
3800
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3801
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3802
- .channels = 16 , // inputs
3803
- .fmt_bits = 24 ,
3804
- .iface = 0 ,
3805
- .altsetting = 1 ,
3806
- .altset_idx = 1 ,
3807
- .endpoint = 0x81 ,
3808
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3809
- USB_ENDPOINT_SYNC_ASYNC ,
3810
- .rates = SNDRV_PCM_RATE_64000 |
3811
- SNDRV_PCM_RATE_88200 |
3812
- SNDRV_PCM_RATE_96000 ,
3813
- .rate_min = 64000 ,
3814
- .rate_max = 96000 ,
3815
- .nr_rates = 3 ,
3816
- .rate_table = (unsigned int []) {
3817
- 64000 , 88200 , 96000 ,
3818
- }
3819
- }
3820
- },
3821
- {
3822
- QUIRK_DATA_AUDIOFORMAT (0 ) {
3823
- .formats = SNDRV_PCM_FMTBIT_S32_LE ,
3824
- .channels = 8 , // inputs
3825
- .fmt_bits = 24 ,
3826
- .iface = 0 ,
3827
- .altsetting = 1 ,
3828
- .altset_idx = 1 ,
3829
- .endpoint = 0x81 ,
3830
- .ep_attr = USB_ENDPOINT_XFER_ISOC |
3831
- USB_ENDPOINT_SYNC_ASYNC ,
3832
- .rates = SNDRV_PCM_RATE_KNOT |
3833
- SNDRV_PCM_RATE_176400 |
3834
- SNDRV_PCM_RATE_192000 ,
3835
- .rate_min = 128000 ,
3836
- .rate_max = 192000 ,
3837
- .nr_rates = 3 ,
3838
- .rate_table = (unsigned int []) {
3839
- 128000 , 176400 , 192000 ,
3840
- }
3841
- }
3842
- },
3843
- QUIRK_COMPOSITE_END
3844
- }
3845
- }
3846
- },
3692
+ */ \
3693
+ { QUIRK_DATA_STANDARD_MIXER (0 ) }, \
3694
+ { \
3695
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3696
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3697
+ .channels = 34 , /* outputs */ \
3698
+ .fmt_bits = 24 , \
3699
+ .iface = 0 , \
3700
+ .altsetting = 1 , \
3701
+ .altset_idx = 1 , \
3702
+ .endpoint = 0x02 , \
3703
+ .ep_idx = 1 , \
3704
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3705
+ USB_ENDPOINT_SYNC_ASYNC , \
3706
+ .rates = SNDRV_PCM_RATE_32000 | \
3707
+ SNDRV_PCM_RATE_44100 | \
3708
+ SNDRV_PCM_RATE_48000 , \
3709
+ .rate_min = 32000 , \
3710
+ .rate_max = 48000 , \
3711
+ .nr_rates = 3 , \
3712
+ .rate_table = (unsigned int []) { \
3713
+ 32000 , 44100 , 48000 , \
3714
+ }, \
3715
+ .sync_ep = 0x81 , \
3716
+ .sync_iface = 0 , \
3717
+ .sync_altsetting = 1 , \
3718
+ .sync_ep_idx = 0 , \
3719
+ .implicit_fb = 1 , \
3720
+ }, \
3721
+ }, \
3722
+ { \
3723
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3724
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3725
+ .channels = 18 , /* outputs */ \
3726
+ .fmt_bits = 24 , \
3727
+ .iface = 0 , \
3728
+ .altsetting = 1 , \
3729
+ .altset_idx = 1 , \
3730
+ .endpoint = 0x02 , \
3731
+ .ep_idx = 1 , \
3732
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3733
+ USB_ENDPOINT_SYNC_ASYNC , \
3734
+ .rates = SNDRV_PCM_RATE_64000 | \
3735
+ SNDRV_PCM_RATE_88200 | \
3736
+ SNDRV_PCM_RATE_96000 , \
3737
+ .rate_min = 64000 , \
3738
+ .rate_max = 96000 , \
3739
+ .nr_rates = 3 , \
3740
+ .rate_table = (unsigned int []) { \
3741
+ 64000 , 88200 , 96000 , \
3742
+ }, \
3743
+ .sync_ep = 0x81 , \
3744
+ .sync_iface = 0 , \
3745
+ .sync_altsetting = 1 , \
3746
+ .sync_ep_idx = 0 , \
3747
+ .implicit_fb = 1 , \
3748
+ }, \
3749
+ }, \
3750
+ { \
3751
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3752
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3753
+ .channels = 10 , /* outputs */ \
3754
+ .fmt_bits = 24 , \
3755
+ .iface = 0 , \
3756
+ .altsetting = 1 , \
3757
+ .altset_idx = 1 , \
3758
+ .endpoint = 0x02 , \
3759
+ .ep_idx = 1 , \
3760
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3761
+ USB_ENDPOINT_SYNC_ASYNC , \
3762
+ .rates = SNDRV_PCM_RATE_KNOT | \
3763
+ SNDRV_PCM_RATE_176400 | \
3764
+ SNDRV_PCM_RATE_192000 , \
3765
+ .rate_min = 128000 , \
3766
+ .rate_max = 192000 , \
3767
+ .nr_rates = 3 , \
3768
+ .rate_table = (unsigned int []) { \
3769
+ 128000 , 176400 , 192000 , \
3770
+ }, \
3771
+ .sync_ep = 0x81 , \
3772
+ .sync_iface = 0 , \
3773
+ .sync_altsetting = 1 , \
3774
+ .sync_ep_idx = 0 , \
3775
+ .implicit_fb = 1 , \
3776
+ }, \
3777
+ }, \
3778
+ { \
3779
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3780
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3781
+ .channels = 32 , /* inputs */ \
3782
+ .fmt_bits = 24 , \
3783
+ .iface = 0 , \
3784
+ .altsetting = 1 , \
3785
+ .altset_idx = 1 , \
3786
+ .endpoint = 0x81 , \
3787
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3788
+ USB_ENDPOINT_SYNC_ASYNC , \
3789
+ .rates = SNDRV_PCM_RATE_32000 | \
3790
+ SNDRV_PCM_RATE_44100 | \
3791
+ SNDRV_PCM_RATE_48000 , \
3792
+ .rate_min = 32000 , \
3793
+ .rate_max = 48000 , \
3794
+ .nr_rates = 3 , \
3795
+ .rate_table = (unsigned int []) { \
3796
+ 32000 , 44100 , 48000 , \
3797
+ } \
3798
+ } \
3799
+ }, \
3800
+ { \
3801
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3802
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3803
+ .channels = 16 , /* inputs */ \
3804
+ .fmt_bits = 24 , \
3805
+ .iface = 0 , \
3806
+ .altsetting = 1 , \
3807
+ .altset_idx = 1 , \
3808
+ .endpoint = 0x81 , \
3809
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3810
+ USB_ENDPOINT_SYNC_ASYNC , \
3811
+ .rates = SNDRV_PCM_RATE_64000 | \
3812
+ SNDRV_PCM_RATE_88200 | \
3813
+ SNDRV_PCM_RATE_96000 , \
3814
+ .rate_min = 64000 , \
3815
+ .rate_max = 96000 , \
3816
+ .nr_rates = 3 , \
3817
+ .rate_table = (unsigned int []) { \
3818
+ 64000 , 88200 , 96000 , \
3819
+ } \
3820
+ } \
3821
+ }, \
3822
+ { \
3823
+ QUIRK_DATA_AUDIOFORMAT (0 ) { \
3824
+ .formats = SNDRV_PCM_FMTBIT_S32_LE , \
3825
+ .channels = 8 , /* inputs */ \
3826
+ .fmt_bits = 24 , \
3827
+ .iface = 0 , \
3828
+ .altsetting = 1 , \
3829
+ .altset_idx = 1 , \
3830
+ .endpoint = 0x81 , \
3831
+ .ep_attr = USB_ENDPOINT_XFER_ISOC | \
3832
+ USB_ENDPOINT_SYNC_ASYNC , \
3833
+ .rates = SNDRV_PCM_RATE_KNOT | \
3834
+ SNDRV_PCM_RATE_176400 | \
3835
+ SNDRV_PCM_RATE_192000 , \
3836
+ .rate_min = 128000 , \
3837
+ .rate_max = 192000 , \
3838
+ .nr_rates = 3 , \
3839
+ .rate_table = (unsigned int []) { \
3840
+ 128000 , 176400 , 192000 , \
3841
+ } \
3842
+ } \
3843
+ }, \
3844
+ QUIRK_COMPOSITE_END \
3845
+ } \
3846
+ } \
3847
+ }
3848
+
3849
+ QUIRK_RME_DIGIFACE (0x3f8c ),
3850
+ QUIRK_RME_DIGIFACE (0x3fa0 ),
3851
+
3847
3852
#undef USB_DEVICE_VENDOR_SPEC
3848
3853
#undef USB_AUDIO_DEVICE
0 commit comments