|
@@ -43,6 +43,27 @@ static inline bool uac2_control_is_writeable(u32 bmControls, u8 control)
|
|
|
return (bmControls >> (control * 2)) & 0x2;
|
|
|
}
|
|
|
|
|
|
+/* 4.7.2 Class-Specific AC Interface Descriptor */
|
|
|
+struct uac2_ac_header_descriptor {
|
|
|
+ __u8 bLength; /* 9 */
|
|
|
+ __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
|
|
|
+ __u8 bDescriptorSubtype; /* UAC_MS_HEADER */
|
|
|
+ __le16 bcdADC; /* 0x0200 */
|
|
|
+ __u8 bCategory;
|
|
|
+ __le16 wTotalLength; /* includes Unit and Terminal desc. */
|
|
|
+ __u8 bmControls;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* 2.3.1.6 Type I Format Type Descriptor (Frmts20 final.pdf)*/
|
|
|
+struct uac2_format_type_i_descriptor {
|
|
|
+ __u8 bLength; /* in bytes: 6 */
|
|
|
+ __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
|
|
|
+ __u8 bDescriptorSubtype; /* FORMAT_TYPE */
|
|
|
+ __u8 bFormatType; /* FORMAT_TYPE_1 */
|
|
|
+ __u8 bSubslotSize; /* {1,2,3,4} */
|
|
|
+ __u8 bBitResolution;
|
|
|
+} __packed;
|
|
|
+
|
|
|
/* 4.7.2.1 Clock Source Descriptor */
|
|
|
|
|
|
struct uac_clock_source_descriptor {
|