~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/usb/audio-v3.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/usb/audio-v3.h (Version linux-6.12-rc7) and /include/linux/usb/audio-v3.h (Version linux-4.19.323)


  1 // SPDX-License-Identifier: GPL-2.0+                1 // SPDX-License-Identifier: GPL-2.0+
  2 /*                                                  2 /*
  3  * Copyright (c) 2017 Ruslan Bilovol <ruslan.b      3  * Copyright (c) 2017 Ruslan Bilovol <ruslan.bilovol@gmail.com>
  4  *                                                  4  *
  5  * This file holds USB constants and structure      5  * This file holds USB constants and structures defined
  6  * by the USB DEVICE CLASS DEFINITION FOR AUDI      6  * by the USB DEVICE CLASS DEFINITION FOR AUDIO DEVICES Release 3.0.
  7  */                                                 7  */
  8                                                     8 
  9 #ifndef __LINUX_USB_AUDIO_V3_H                      9 #ifndef __LINUX_USB_AUDIO_V3_H
 10 #define __LINUX_USB_AUDIO_V3_H                     10 #define __LINUX_USB_AUDIO_V3_H
 11                                                    11 
 12 #include <linux/types.h>                           12 #include <linux/types.h>
 13                                                    13 
 14 /*                                                 14 /*
 15  * v1.0, v2.0 and v3.0 of this standard have m     15  * v1.0, v2.0 and v3.0 of this standard have many things in common. For the rest
 16  * of the definitions, please refer to audio.h     16  * of the definitions, please refer to audio.h and audio-v2.h
 17  */                                                17  */
 18                                                    18 
 19 /* All High Capability descriptors have these      19 /* All High Capability descriptors have these 2 fields at the beginning */
 20 struct uac3_hc_descriptor_header {                 20 struct uac3_hc_descriptor_header {
 21         __le16 wLength;                            21         __le16 wLength;
 22         __u8 bDescriptorType;                      22         __u8 bDescriptorType;
 23         __u8 bDescriptorSubtype;                   23         __u8 bDescriptorSubtype;
 24         __le16 wDescriptorID;                      24         __le16 wDescriptorID;
 25 } __attribute__ ((packed));                        25 } __attribute__ ((packed));
 26                                                    26 
 27 /* 4.3.1 CLUSTER DESCRIPTOR HEADER */              27 /* 4.3.1 CLUSTER DESCRIPTOR HEADER */
 28 struct uac3_cluster_header_descriptor {            28 struct uac3_cluster_header_descriptor {
 29         __le16 wLength;                            29         __le16 wLength;
 30         __u8 bDescriptorType;                      30         __u8 bDescriptorType;
 31         __u8 bDescriptorSubtype;                   31         __u8 bDescriptorSubtype;
 32         __le16 wDescriptorID;                      32         __le16 wDescriptorID;
 33         __u8 bNrChannels;                          33         __u8 bNrChannels;
 34 } __attribute__ ((packed));                        34 } __attribute__ ((packed));
 35                                                    35 
 36 /* 4.3.2.1 SEGMENTS */                             36 /* 4.3.2.1 SEGMENTS */
 37 struct uac3_cluster_segment_descriptor {           37 struct uac3_cluster_segment_descriptor {
 38         __le16 wLength;                            38         __le16 wLength;
 39         __u8 bSegmentType;                         39         __u8 bSegmentType;
 40         /* __u8[0]; segment-specific data */       40         /* __u8[0]; segment-specific data */
 41 } __attribute__ ((packed));                        41 } __attribute__ ((packed));
 42                                                    42 
 43 /* 4.3.2.1.1 END SEGMENT */                        43 /* 4.3.2.1.1 END SEGMENT */
 44 struct uac3_cluster_end_segment_descriptor {       44 struct uac3_cluster_end_segment_descriptor {
 45         __le16 wLength;                            45         __le16 wLength;
 46         __u8 bSegmentType;              /* Con     46         __u8 bSegmentType;              /* Constant END_SEGMENT */
 47 } __attribute__ ((packed));                        47 } __attribute__ ((packed));
 48                                                    48 
 49 /* 4.3.2.1.3.1 INFORMATION SEGMENT */              49 /* 4.3.2.1.3.1 INFORMATION SEGMENT */
 50 struct uac3_cluster_information_segment_descri     50 struct uac3_cluster_information_segment_descriptor {
 51         __le16 wLength;                            51         __le16 wLength;
 52         __u8 bSegmentType;                         52         __u8 bSegmentType;
 53         __u8 bChPurpose;                           53         __u8 bChPurpose;
 54         __u8 bChRelationship;                      54         __u8 bChRelationship;
 55         __u8 bChGroupID;                           55         __u8 bChGroupID;
 56 } __attribute__ ((packed));                        56 } __attribute__ ((packed));
 57                                                    57 
 58 /* 4.5.2 CLASS-SPECIFIC AC INTERFACE DESCRIPTO     58 /* 4.5.2 CLASS-SPECIFIC AC INTERFACE DESCRIPTOR */
 59 struct uac3_ac_header_descriptor {                 59 struct uac3_ac_header_descriptor {
 60         __u8 bLength;                   /* 10      60         __u8 bLength;                   /* 10 */
 61         __u8 bDescriptorType;           /* CS_     61         __u8 bDescriptorType;           /* CS_INTERFACE descriptor type */
 62         __u8 bDescriptorSubtype;        /* HEA     62         __u8 bDescriptorSubtype;        /* HEADER descriptor subtype */
 63         __u8 bCategory;                            63         __u8 bCategory;
 64                                                    64 
 65         /* includes Clock Source, Unit, Termin     65         /* includes Clock Source, Unit, Terminal, and Power Domain desc. */
 66         __le16 wTotalLength;                       66         __le16 wTotalLength;
 67                                                    67 
 68         __le32 bmControls;                         68         __le32 bmControls;
 69 } __attribute__ ((packed));                        69 } __attribute__ ((packed));
 70                                                    70 
 71 /* 4.5.2.1 INPUT TERMINAL DESCRIPTOR */            71 /* 4.5.2.1 INPUT TERMINAL DESCRIPTOR */
 72 struct uac3_input_terminal_descriptor {            72 struct uac3_input_terminal_descriptor {
 73         __u8 bLength;                              73         __u8 bLength;
 74         __u8 bDescriptorType;                      74         __u8 bDescriptorType;
 75         __u8 bDescriptorSubtype;                   75         __u8 bDescriptorSubtype;
 76         __u8 bTerminalID;                          76         __u8 bTerminalID;
 77         __le16 wTerminalType;                      77         __le16 wTerminalType;
 78         __u8 bAssocTerminal;                       78         __u8 bAssocTerminal;
 79         __u8 bCSourceID;                           79         __u8 bCSourceID;
 80         __le32 bmControls;                         80         __le32 bmControls;
 81         __le16 wClusterDescrID;                    81         __le16 wClusterDescrID;
 82         __le16 wExTerminalDescrID;                 82         __le16 wExTerminalDescrID;
 83         __le16 wConnectorsDescrID;                 83         __le16 wConnectorsDescrID;
 84         __le16 wTerminalDescrStr;                  84         __le16 wTerminalDescrStr;
 85 } __attribute__((packed));                         85 } __attribute__((packed));
 86                                                    86 
 87 /* 4.5.2.2 OUTPUT TERMINAL DESCRIPTOR */           87 /* 4.5.2.2 OUTPUT TERMINAL DESCRIPTOR */
 88 struct uac3_output_terminal_descriptor {           88 struct uac3_output_terminal_descriptor {
 89         __u8 bLength;                              89         __u8 bLength;
 90         __u8 bDescriptorType;                      90         __u8 bDescriptorType;
 91         __u8 bDescriptorSubtype;                   91         __u8 bDescriptorSubtype;
 92         __u8 bTerminalID;                          92         __u8 bTerminalID;
 93         __le16 wTerminalType;                      93         __le16 wTerminalType;
 94         __u8 bAssocTerminal;                       94         __u8 bAssocTerminal;
 95         __u8 bSourceID;                            95         __u8 bSourceID;
 96         __u8 bCSourceID;                           96         __u8 bCSourceID;
 97         __le32 bmControls;                         97         __le32 bmControls;
 98         __le16 wExTerminalDescrID;                 98         __le16 wExTerminalDescrID;
 99         __le16 wConnectorsDescrID;                 99         __le16 wConnectorsDescrID;
100         __le16 wTerminalDescrStr;                 100         __le16 wTerminalDescrStr;
101 } __attribute__((packed));                        101 } __attribute__((packed));
102                                                   102 
103 /* 4.5.2.7 FEATURE UNIT DESCRIPTOR */             103 /* 4.5.2.7 FEATURE UNIT DESCRIPTOR */
104 struct uac3_feature_unit_descriptor {             104 struct uac3_feature_unit_descriptor {
105         __u8 bLength;                             105         __u8 bLength;
106         __u8 bDescriptorType;                     106         __u8 bDescriptorType;
107         __u8 bDescriptorSubtype;                  107         __u8 bDescriptorSubtype;
108         __u8 bUnitID;                             108         __u8 bUnitID;
109         __u8 bSourceID;                           109         __u8 bSourceID;
110         /* bmaControls is actually u32,           110         /* bmaControls is actually u32,
111          * but u8 is needed for the hybrid par    111          * but u8 is needed for the hybrid parser */
112         __u8 bmaControls[]; /* variable length !! 112         __u8 bmaControls[0]; /* variable length */
113         /* wFeatureDescrStr omitted */            113         /* wFeatureDescrStr omitted */
114 } __attribute__((packed));                        114 } __attribute__((packed));
115                                                   115 
116 #define UAC3_DT_FEATURE_UNIT_SIZE(ch)             116 #define UAC3_DT_FEATURE_UNIT_SIZE(ch)           (7 + ((ch) + 1) * 4)
117                                                   117 
118 /* As above, but more useful for defining your    118 /* As above, but more useful for defining your own descriptors */
119 #define DECLARE_UAC3_FEATURE_UNIT_DESCRIPTOR(c    119 #define DECLARE_UAC3_FEATURE_UNIT_DESCRIPTOR(ch)                \
120 struct uac3_feature_unit_descriptor_##ch {        120 struct uac3_feature_unit_descriptor_##ch {                      \
121         __u8 bLength;                             121         __u8 bLength;                                           \
122         __u8 bDescriptorType;                     122         __u8 bDescriptorType;                                   \
123         __u8 bDescriptorSubtype;                  123         __u8 bDescriptorSubtype;                                \
124         __u8 bUnitID;                             124         __u8 bUnitID;                                           \
125         __u8 bSourceID;                           125         __u8 bSourceID;                                         \
126         __le32 bmaControls[ch + 1];               126         __le32 bmaControls[ch + 1];                             \
127         __le16 wFeatureDescrStr;                  127         __le16 wFeatureDescrStr;                                \
128 } __attribute__ ((packed))                        128 } __attribute__ ((packed))
129                                                   129 
130 /* 4.5.2.12 CLOCK SOURCE DESCRIPTOR */            130 /* 4.5.2.12 CLOCK SOURCE DESCRIPTOR */
131 struct uac3_clock_source_descriptor {             131 struct uac3_clock_source_descriptor {
132         __u8 bLength;                             132         __u8 bLength;
133         __u8 bDescriptorType;                     133         __u8 bDescriptorType;
134         __u8 bDescriptorSubtype;                  134         __u8 bDescriptorSubtype;
135         __u8 bClockID;                            135         __u8 bClockID;
136         __u8 bmAttributes;                        136         __u8 bmAttributes;
137         __le32 bmControls;                        137         __le32 bmControls;
138         __u8 bReferenceTerminal;                  138         __u8 bReferenceTerminal;
139         __le16 wClockSourceStr;                   139         __le16 wClockSourceStr;
140 } __attribute__((packed));                        140 } __attribute__((packed));
141                                                   141 
142 /* bmAttribute fields */                          142 /* bmAttribute fields */
143 #define UAC3_CLOCK_SOURCE_TYPE_EXT      0x0       143 #define UAC3_CLOCK_SOURCE_TYPE_EXT      0x0
144 #define UAC3_CLOCK_SOURCE_TYPE_INT      0x1       144 #define UAC3_CLOCK_SOURCE_TYPE_INT      0x1
145 #define UAC3_CLOCK_SOURCE_ASYNC         (0 <<     145 #define UAC3_CLOCK_SOURCE_ASYNC         (0 << 2)
146 #define UAC3_CLOCK_SOURCE_SYNCED_TO_SOF (1 <<     146 #define UAC3_CLOCK_SOURCE_SYNCED_TO_SOF (1 << 1)
147                                                   147 
148 /* 4.5.2.13 CLOCK SELECTOR DESCRIPTOR */          148 /* 4.5.2.13 CLOCK SELECTOR DESCRIPTOR */
149 struct uac3_clock_selector_descriptor {           149 struct uac3_clock_selector_descriptor {
150         __u8 bLength;                             150         __u8 bLength;
151         __u8 bDescriptorType;                     151         __u8 bDescriptorType;
152         __u8 bDescriptorSubtype;                  152         __u8 bDescriptorSubtype;
153         __u8 bClockID;                            153         __u8 bClockID;
154         __u8 bNrInPins;                           154         __u8 bNrInPins;
155         __u8 baCSourceID[];                       155         __u8 baCSourceID[];
156         /* bmControls and wCSelectorDescrStr o    156         /* bmControls and wCSelectorDescrStr omitted */
157 } __attribute__((packed));                        157 } __attribute__((packed));
158                                                   158 
159 /* 4.5.2.14 CLOCK MULTIPLIER DESCRIPTOR */        159 /* 4.5.2.14 CLOCK MULTIPLIER DESCRIPTOR */
160 struct uac3_clock_multiplier_descriptor {         160 struct uac3_clock_multiplier_descriptor {
161         __u8 bLength;                             161         __u8 bLength;
162         __u8 bDescriptorType;                     162         __u8 bDescriptorType;
163         __u8 bDescriptorSubtype;                  163         __u8 bDescriptorSubtype;
164         __u8 bClockID;                            164         __u8 bClockID;
165         __u8 bCSourceID;                          165         __u8 bCSourceID;
166         __le32 bmControls;                        166         __le32 bmControls;
167         __le16 wCMultiplierDescrStr;              167         __le16 wCMultiplierDescrStr;
168 } __attribute__((packed));                        168 } __attribute__((packed));
169                                                   169 
170 /* 4.5.2.15 POWER DOMAIN DESCRIPTOR */            170 /* 4.5.2.15 POWER DOMAIN DESCRIPTOR */
171 struct uac3_power_domain_descriptor {             171 struct uac3_power_domain_descriptor {
172         __u8 bLength;                             172         __u8 bLength;
173         __u8 bDescriptorType;                     173         __u8 bDescriptorType;
174         __u8 bDescriptorSubtype;                  174         __u8 bDescriptorSubtype;
175         __u8 bPowerDomainID;                      175         __u8 bPowerDomainID;
176         __le16 waRecoveryTime1;                   176         __le16 waRecoveryTime1;
177         __le16 waRecoveryTime2;                   177         __le16 waRecoveryTime2;
178         __u8 bNrEntities;                         178         __u8 bNrEntities;
179         __u8 baEntityID[];                        179         __u8 baEntityID[];
180         /* wPDomainDescrStr omitted */            180         /* wPDomainDescrStr omitted */
181 } __attribute__((packed));                        181 } __attribute__((packed));
182                                                   182 
183 /* As above, but more useful for defining your    183 /* As above, but more useful for defining your own descriptors */
184 #define DECLARE_UAC3_POWER_DOMAIN_DESCRIPTOR(n    184 #define DECLARE_UAC3_POWER_DOMAIN_DESCRIPTOR(n)                 \
185 struct uac3_power_domain_descriptor_##n {         185 struct uac3_power_domain_descriptor_##n {                       \
186         __u8 bLength;                             186         __u8 bLength;                                           \
187         __u8 bDescriptorType;                     187         __u8 bDescriptorType;                                   \
188         __u8 bDescriptorSubtype;                  188         __u8 bDescriptorSubtype;                                \
189         __u8 bPowerDomainID;                      189         __u8 bPowerDomainID;                                    \
190         __le16 waRecoveryTime1;                   190         __le16 waRecoveryTime1;                                 \
191         __le16 waRecoveryTime2;                   191         __le16 waRecoveryTime2;                                 \
192         __u8 bNrEntities;                         192         __u8 bNrEntities;                                       \
193         __u8 baEntityID[n];                       193         __u8 baEntityID[n];                                     \
194         __le16 wPDomainDescrStr;                  194         __le16 wPDomainDescrStr;                                        \
195 } __attribute__ ((packed))                        195 } __attribute__ ((packed))
196                                                   196 
197 /* 4.7.2 CLASS-SPECIFIC AS INTERFACE DESCRIPTO    197 /* 4.7.2 CLASS-SPECIFIC AS INTERFACE DESCRIPTOR */
198 struct uac3_as_header_descriptor {                198 struct uac3_as_header_descriptor {
199         __u8 bLength;                             199         __u8 bLength;
200         __u8 bDescriptorType;                     200         __u8 bDescriptorType;
201         __u8 bDescriptorSubtype;                  201         __u8 bDescriptorSubtype;
202         __u8 bTerminalLink;                       202         __u8 bTerminalLink;
203         __le32 bmControls;                        203         __le32 bmControls;
204         __le16 wClusterDescrID;                   204         __le16 wClusterDescrID;
205         __le64 bmFormats;                         205         __le64 bmFormats;
206         __u8 bSubslotSize;                        206         __u8 bSubslotSize;
207         __u8 bBitResolution;                      207         __u8 bBitResolution;
208         __le16 bmAuxProtocols;                    208         __le16 bmAuxProtocols;
209         __u8 bControlSize;                        209         __u8 bControlSize;
210 } __attribute__((packed));                        210 } __attribute__((packed));
211                                                   211 
212 #define UAC3_FORMAT_TYPE_I_RAW_DATA     (1 <<     212 #define UAC3_FORMAT_TYPE_I_RAW_DATA     (1 << 6)
213                                                   213 
214 /* 4.8.1.2 CLASS-SPECIFIC AS ISOCHRONOUS AUDIO    214 /* 4.8.1.2 CLASS-SPECIFIC AS ISOCHRONOUS AUDIO DATA ENDPOINT DESCRIPTOR */
215 struct uac3_iso_endpoint_descriptor {             215 struct uac3_iso_endpoint_descriptor {
216         __u8 bLength;                             216         __u8 bLength;
217         __u8 bDescriptorType;                     217         __u8 bDescriptorType;
218         __u8 bDescriptorSubtype;                  218         __u8 bDescriptorSubtype;
219         __le32 bmControls;                        219         __le32 bmControls;
220         __u8 bLockDelayUnits;                     220         __u8 bLockDelayUnits;
221         __le16 wLockDelay;                        221         __le16 wLockDelay;
222 } __attribute__((packed));                        222 } __attribute__((packed));
223                                                   223 
224 /* 5.2.1.6.1 INSERTION CONTROL PARAMETER BLOCK    224 /* 5.2.1.6.1 INSERTION CONTROL PARAMETER BLOCK */
225 struct uac3_insertion_ctl_blk {                   225 struct uac3_insertion_ctl_blk {
226         __u8 bSize;                               226         __u8 bSize;
227         __u8 bmConInserted;                       227         __u8 bmConInserted;
228 } __attribute__ ((packed));                       228 } __attribute__ ((packed));
229                                                   229 
230 /* 6.1 INTERRUPT DATA MESSAGE */                  230 /* 6.1 INTERRUPT DATA MESSAGE */
231 struct uac3_interrupt_data_msg {                  231 struct uac3_interrupt_data_msg {
232         __u8 bInfo;                               232         __u8 bInfo;
233         __u8 bSourceType;                         233         __u8 bSourceType;
234         __le16 wValue;                            234         __le16 wValue;
235         __le16 wIndex;                            235         __le16 wIndex;
236 } __attribute__((packed));                        236 } __attribute__((packed));
237                                                   237 
238 /* A.2 AUDIO AUDIO FUNCTION SUBCLASS CODES */     238 /* A.2 AUDIO AUDIO FUNCTION SUBCLASS CODES */
239 #define UAC3_FUNCTION_SUBCLASS_UNDEFINED          239 #define UAC3_FUNCTION_SUBCLASS_UNDEFINED        0x00
240 #define UAC3_FUNCTION_SUBCLASS_FULL_ADC_3_0       240 #define UAC3_FUNCTION_SUBCLASS_FULL_ADC_3_0     0x01
241 /* BADD profiles */                               241 /* BADD profiles */
242 #define UAC3_FUNCTION_SUBCLASS_GENERIC_IO         242 #define UAC3_FUNCTION_SUBCLASS_GENERIC_IO       0x20
243 #define UAC3_FUNCTION_SUBCLASS_HEADPHONE          243 #define UAC3_FUNCTION_SUBCLASS_HEADPHONE        0x21
244 #define UAC3_FUNCTION_SUBCLASS_SPEAKER            244 #define UAC3_FUNCTION_SUBCLASS_SPEAKER          0x22
245 #define UAC3_FUNCTION_SUBCLASS_MICROPHONE         245 #define UAC3_FUNCTION_SUBCLASS_MICROPHONE       0x23
246 #define UAC3_FUNCTION_SUBCLASS_HEADSET            246 #define UAC3_FUNCTION_SUBCLASS_HEADSET          0x24
247 #define UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER    247 #define UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER  0x25
248 #define UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE       248 #define UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE     0x26
249                                                   249 
250 /* A.7 AUDIO FUNCTION CATEGORY CODES */           250 /* A.7 AUDIO FUNCTION CATEGORY CODES */
251 #define UAC3_FUNCTION_SUBCLASS_UNDEFINED          251 #define UAC3_FUNCTION_SUBCLASS_UNDEFINED        0x00
252 #define UAC3_FUNCTION_DESKTOP_SPEAKER             252 #define UAC3_FUNCTION_DESKTOP_SPEAKER           0x01
253 #define UAC3_FUNCTION_HOME_THEATER                253 #define UAC3_FUNCTION_HOME_THEATER              0x02
254 #define UAC3_FUNCTION_MICROPHONE                  254 #define UAC3_FUNCTION_MICROPHONE                0x03
255 #define UAC3_FUNCTION_HEADSET                     255 #define UAC3_FUNCTION_HEADSET                   0x04
256 #define UAC3_FUNCTION_TELEPHONE                   256 #define UAC3_FUNCTION_TELEPHONE                 0x05
257 #define UAC3_FUNCTION_CONVERTER                   257 #define UAC3_FUNCTION_CONVERTER                 0x06
258 #define UAC3_FUNCTION_SOUND_RECORDER              258 #define UAC3_FUNCTION_SOUND_RECORDER            0x07
259 #define UAC3_FUNCTION_IO_BOX                      259 #define UAC3_FUNCTION_IO_BOX                    0x08
260 #define UAC3_FUNCTION_MUSICAL_INSTRUMENT          260 #define UAC3_FUNCTION_MUSICAL_INSTRUMENT        0x09
261 #define UAC3_FUNCTION_PRO_AUDIO                   261 #define UAC3_FUNCTION_PRO_AUDIO                 0x0a
262 #define UAC3_FUNCTION_AUDIO_VIDEO                 262 #define UAC3_FUNCTION_AUDIO_VIDEO               0x0b
263 #define UAC3_FUNCTION_CONTROL_PANEL               263 #define UAC3_FUNCTION_CONTROL_PANEL             0x0c
264 #define UAC3_FUNCTION_HEADPHONE                   264 #define UAC3_FUNCTION_HEADPHONE                 0x0d
265 #define UAC3_FUNCTION_GENERIC_SPEAKER             265 #define UAC3_FUNCTION_GENERIC_SPEAKER           0x0e
266 #define UAC3_FUNCTION_HEADSET_ADAPTER             266 #define UAC3_FUNCTION_HEADSET_ADAPTER           0x0f
267 #define UAC3_FUNCTION_SPEAKERPHONE                267 #define UAC3_FUNCTION_SPEAKERPHONE              0x10
268 #define UAC3_FUNCTION_OTHER                       268 #define UAC3_FUNCTION_OTHER                     0xff
269                                                   269 
270 /* A.8 AUDIO CLASS-SPECIFIC DESCRIPTOR TYPES *    270 /* A.8 AUDIO CLASS-SPECIFIC DESCRIPTOR TYPES */
271 #define UAC3_CS_UNDEFINED               0x20      271 #define UAC3_CS_UNDEFINED               0x20
272 #define UAC3_CS_DEVICE                  0x21      272 #define UAC3_CS_DEVICE                  0x21
273 #define UAC3_CS_CONFIGURATION           0x22      273 #define UAC3_CS_CONFIGURATION           0x22
274 #define UAC3_CS_STRING                  0x23      274 #define UAC3_CS_STRING                  0x23
275 #define UAC3_CS_INTERFACE               0x24      275 #define UAC3_CS_INTERFACE               0x24
276 #define UAC3_CS_ENDPOINT                0x25      276 #define UAC3_CS_ENDPOINT                0x25
277 #define UAC3_CS_CLUSTER                 0x26      277 #define UAC3_CS_CLUSTER                 0x26
278                                                   278 
279 /* A.10 CLUSTER DESCRIPTOR SEGMENT TYPES */       279 /* A.10 CLUSTER DESCRIPTOR SEGMENT TYPES */
280 #define UAC3_SEGMENT_UNDEFINED          0x00      280 #define UAC3_SEGMENT_UNDEFINED          0x00
281 #define UAC3_CLUSTER_DESCRIPTION        0x01      281 #define UAC3_CLUSTER_DESCRIPTION        0x01
282 #define UAC3_CLUSTER_VENDOR_DEFINED     0x1F      282 #define UAC3_CLUSTER_VENDOR_DEFINED     0x1F
283 #define UAC3_CHANNEL_INFORMATION        0x20      283 #define UAC3_CHANNEL_INFORMATION        0x20
284 #define UAC3_CHANNEL_AMBISONIC          0x21      284 #define UAC3_CHANNEL_AMBISONIC          0x21
285 #define UAC3_CHANNEL_DESCRIPTION        0x22      285 #define UAC3_CHANNEL_DESCRIPTION        0x22
286 #define UAC3_CHANNEL_VENDOR_DEFINED     0xFE      286 #define UAC3_CHANNEL_VENDOR_DEFINED     0xFE
287 #define UAC3_END_SEGMENT                0xFF      287 #define UAC3_END_SEGMENT                0xFF
288                                                   288 
289 /* A.11 CHANNEL PURPOSE DEFINITIONS */            289 /* A.11 CHANNEL PURPOSE DEFINITIONS */
290 #define UAC3_PURPOSE_UNDEFINED          0x00      290 #define UAC3_PURPOSE_UNDEFINED          0x00
291 #define UAC3_PURPOSE_GENERIC_AUDIO      0x01      291 #define UAC3_PURPOSE_GENERIC_AUDIO      0x01
292 #define UAC3_PURPOSE_VOICE              0x02      292 #define UAC3_PURPOSE_VOICE              0x02
293 #define UAC3_PURPOSE_SPEECH             0x03      293 #define UAC3_PURPOSE_SPEECH             0x03
294 #define UAC3_PURPOSE_AMBIENT            0x04      294 #define UAC3_PURPOSE_AMBIENT            0x04
295 #define UAC3_PURPOSE_REFERENCE          0x05      295 #define UAC3_PURPOSE_REFERENCE          0x05
296 #define UAC3_PURPOSE_ULTRASONIC         0x06      296 #define UAC3_PURPOSE_ULTRASONIC         0x06
297 #define UAC3_PURPOSE_VIBROKINETIC       0x07      297 #define UAC3_PURPOSE_VIBROKINETIC       0x07
298 #define UAC3_PURPOSE_NON_AUDIO          0xFF      298 #define UAC3_PURPOSE_NON_AUDIO          0xFF
299                                                   299 
300 /* A.12 CHANNEL RELATIONSHIP DEFINITIONS */       300 /* A.12 CHANNEL RELATIONSHIP DEFINITIONS */
301 #define UAC3_CH_RELATIONSHIP_UNDEFINED  0x00      301 #define UAC3_CH_RELATIONSHIP_UNDEFINED  0x00
302 #define UAC3_CH_MONO                    0x01      302 #define UAC3_CH_MONO                    0x01
303 #define UAC3_CH_LEFT                    0x02      303 #define UAC3_CH_LEFT                    0x02
304 #define UAC3_CH_RIGHT                   0x03      304 #define UAC3_CH_RIGHT                   0x03
305 #define UAC3_CH_ARRAY                   0x04      305 #define UAC3_CH_ARRAY                   0x04
306 #define UAC3_CH_PATTERN_X               0x20      306 #define UAC3_CH_PATTERN_X               0x20
307 #define UAC3_CH_PATTERN_Y               0x21      307 #define UAC3_CH_PATTERN_Y               0x21
308 #define UAC3_CH_PATTERN_A               0x22      308 #define UAC3_CH_PATTERN_A               0x22
309 #define UAC3_CH_PATTERN_B               0x23      309 #define UAC3_CH_PATTERN_B               0x23
310 #define UAC3_CH_PATTERN_M               0x24      310 #define UAC3_CH_PATTERN_M               0x24
311 #define UAC3_CH_PATTERN_S               0x25      311 #define UAC3_CH_PATTERN_S               0x25
312 #define UAC3_CH_FRONT_LEFT              0x80      312 #define UAC3_CH_FRONT_LEFT              0x80
313 #define UAC3_CH_FRONT_RIGHT             0x81      313 #define UAC3_CH_FRONT_RIGHT             0x81
314 #define UAC3_CH_FRONT_CENTER            0x82      314 #define UAC3_CH_FRONT_CENTER            0x82
315 #define UAC3_CH_FRONT_LEFT_OF_CENTER    0x83      315 #define UAC3_CH_FRONT_LEFT_OF_CENTER    0x83
316 #define UAC3_CH_FRONT_RIGHT_OF_CENTER   0x84      316 #define UAC3_CH_FRONT_RIGHT_OF_CENTER   0x84
317 #define UAC3_CH_FRONT_WIDE_LEFT         0x85      317 #define UAC3_CH_FRONT_WIDE_LEFT         0x85
318 #define UAC3_CH_FRONT_WIDE_RIGHT        0x86      318 #define UAC3_CH_FRONT_WIDE_RIGHT        0x86
319 #define UAC3_CH_SIDE_LEFT               0x87      319 #define UAC3_CH_SIDE_LEFT               0x87
320 #define UAC3_CH_SIDE_RIGHT              0x88      320 #define UAC3_CH_SIDE_RIGHT              0x88
321 #define UAC3_CH_SURROUND_ARRAY_LEFT     0x89      321 #define UAC3_CH_SURROUND_ARRAY_LEFT     0x89
322 #define UAC3_CH_SURROUND_ARRAY_RIGHT    0x8A      322 #define UAC3_CH_SURROUND_ARRAY_RIGHT    0x8A
323 #define UAC3_CH_BACK_LEFT               0x8B      323 #define UAC3_CH_BACK_LEFT               0x8B
324 #define UAC3_CH_BACK_RIGHT              0x8C      324 #define UAC3_CH_BACK_RIGHT              0x8C
325 #define UAC3_CH_BACK_CENTER             0x8D      325 #define UAC3_CH_BACK_CENTER             0x8D
326 #define UAC3_CH_BACK_LEFT_OF_CENTER     0x8E      326 #define UAC3_CH_BACK_LEFT_OF_CENTER     0x8E
327 #define UAC3_CH_BACK_RIGHT_OF_CENTER    0x8F      327 #define UAC3_CH_BACK_RIGHT_OF_CENTER    0x8F
328 #define UAC3_CH_BACK_WIDE_LEFT          0x90      328 #define UAC3_CH_BACK_WIDE_LEFT          0x90
329 #define UAC3_CH_BACK_WIDE_RIGHT         0x91      329 #define UAC3_CH_BACK_WIDE_RIGHT         0x91
330 #define UAC3_CH_TOP_CENTER              0x92      330 #define UAC3_CH_TOP_CENTER              0x92
331 #define UAC3_CH_TOP_FRONT_LEFT          0x93      331 #define UAC3_CH_TOP_FRONT_LEFT          0x93
332 #define UAC3_CH_TOP_FRONT_RIGHT         0x94      332 #define UAC3_CH_TOP_FRONT_RIGHT         0x94
333 #define UAC3_CH_TOP_FRONT_CENTER        0x95      333 #define UAC3_CH_TOP_FRONT_CENTER        0x95
334 #define UAC3_CH_TOP_FRONT_LOC           0x96      334 #define UAC3_CH_TOP_FRONT_LOC           0x96
335 #define UAC3_CH_TOP_FRONT_ROC           0x97      335 #define UAC3_CH_TOP_FRONT_ROC           0x97
336 #define UAC3_CH_TOP_FRONT_WIDE_LEFT     0x98      336 #define UAC3_CH_TOP_FRONT_WIDE_LEFT     0x98
337 #define UAC3_CH_TOP_FRONT_WIDE_RIGHT    0x99      337 #define UAC3_CH_TOP_FRONT_WIDE_RIGHT    0x99
338 #define UAC3_CH_TOP_SIDE_LEFT           0x9A      338 #define UAC3_CH_TOP_SIDE_LEFT           0x9A
339 #define UAC3_CH_TOP_SIDE_RIGHT          0x9B      339 #define UAC3_CH_TOP_SIDE_RIGHT          0x9B
340 #define UAC3_CH_TOP_SURR_ARRAY_LEFT     0x9C      340 #define UAC3_CH_TOP_SURR_ARRAY_LEFT     0x9C
341 #define UAC3_CH_TOP_SURR_ARRAY_RIGHT    0x9D      341 #define UAC3_CH_TOP_SURR_ARRAY_RIGHT    0x9D
342 #define UAC3_CH_TOP_BACK_LEFT           0x9E      342 #define UAC3_CH_TOP_BACK_LEFT           0x9E
343 #define UAC3_CH_TOP_BACK_RIGHT          0x9F      343 #define UAC3_CH_TOP_BACK_RIGHT          0x9F
344 #define UAC3_CH_TOP_BACK_CENTER         0xA0      344 #define UAC3_CH_TOP_BACK_CENTER         0xA0
345 #define UAC3_CH_TOP_BACK_LOC            0xA1      345 #define UAC3_CH_TOP_BACK_LOC            0xA1
346 #define UAC3_CH_TOP_BACK_ROC            0xA2      346 #define UAC3_CH_TOP_BACK_ROC            0xA2
347 #define UAC3_CH_TOP_BACK_WIDE_LEFT      0xA3      347 #define UAC3_CH_TOP_BACK_WIDE_LEFT      0xA3
348 #define UAC3_CH_TOP_BACK_WIDE_RIGHT     0xA4      348 #define UAC3_CH_TOP_BACK_WIDE_RIGHT     0xA4
349 #define UAC3_CH_BOTTOM_CENTER           0xA5      349 #define UAC3_CH_BOTTOM_CENTER           0xA5
350 #define UAC3_CH_BOTTOM_FRONT_LEFT       0xA6      350 #define UAC3_CH_BOTTOM_FRONT_LEFT       0xA6
351 #define UAC3_CH_BOTTOM_FRONT_RIGHT      0xA7      351 #define UAC3_CH_BOTTOM_FRONT_RIGHT      0xA7
352 #define UAC3_CH_BOTTOM_FRONT_CENTER     0xA8      352 #define UAC3_CH_BOTTOM_FRONT_CENTER     0xA8
353 #define UAC3_CH_BOTTOM_FRONT_LOC        0xA9      353 #define UAC3_CH_BOTTOM_FRONT_LOC        0xA9
354 #define UAC3_CH_BOTTOM_FRONT_ROC        0xAA      354 #define UAC3_CH_BOTTOM_FRONT_ROC        0xAA
355 #define UAC3_CH_BOTTOM_FRONT_WIDE_LEFT  0xAB      355 #define UAC3_CH_BOTTOM_FRONT_WIDE_LEFT  0xAB
356 #define UAC3_CH_BOTTOM_FRONT_WIDE_RIGHT 0xAC      356 #define UAC3_CH_BOTTOM_FRONT_WIDE_RIGHT 0xAC
357 #define UAC3_CH_BOTTOM_SIDE_LEFT        0xAD      357 #define UAC3_CH_BOTTOM_SIDE_LEFT        0xAD
358 #define UAC3_CH_BOTTOM_SIDE_RIGHT       0xAE      358 #define UAC3_CH_BOTTOM_SIDE_RIGHT       0xAE
359 #define UAC3_CH_BOTTOM_SURR_ARRAY_LEFT  0xAF      359 #define UAC3_CH_BOTTOM_SURR_ARRAY_LEFT  0xAF
360 #define UAC3_CH_BOTTOM_SURR_ARRAY_RIGHT 0xB0      360 #define UAC3_CH_BOTTOM_SURR_ARRAY_RIGHT 0xB0
361 #define UAC3_CH_BOTTOM_BACK_LEFT        0xB1      361 #define UAC3_CH_BOTTOM_BACK_LEFT        0xB1
362 #define UAC3_CH_BOTTOM_BACK_RIGHT       0xB2      362 #define UAC3_CH_BOTTOM_BACK_RIGHT       0xB2
363 #define UAC3_CH_BOTTOM_BACK_CENTER      0xB3      363 #define UAC3_CH_BOTTOM_BACK_CENTER      0xB3
364 #define UAC3_CH_BOTTOM_BACK_LOC         0xB4      364 #define UAC3_CH_BOTTOM_BACK_LOC         0xB4
365 #define UAC3_CH_BOTTOM_BACK_ROC         0xB5      365 #define UAC3_CH_BOTTOM_BACK_ROC         0xB5
366 #define UAC3_CH_BOTTOM_BACK_WIDE_LEFT   0xB6      366 #define UAC3_CH_BOTTOM_BACK_WIDE_LEFT   0xB6
367 #define UAC3_CH_BOTTOM_BACK_WIDE_RIGHT  0xB7      367 #define UAC3_CH_BOTTOM_BACK_WIDE_RIGHT  0xB7
368 #define UAC3_CH_LOW_FREQUENCY_EFFECTS   0xB8      368 #define UAC3_CH_LOW_FREQUENCY_EFFECTS   0xB8
369 #define UAC3_CH_LFE_LEFT                0xB9      369 #define UAC3_CH_LFE_LEFT                0xB9
370 #define UAC3_CH_LFE_RIGHT               0xBA      370 #define UAC3_CH_LFE_RIGHT               0xBA
371 #define UAC3_CH_HEADPHONE_LEFT          0xBB      371 #define UAC3_CH_HEADPHONE_LEFT          0xBB
372 #define UAC3_CH_HEADPHONE_RIGHT         0xBC      372 #define UAC3_CH_HEADPHONE_RIGHT         0xBC
373                                                   373 
374 /* A.15 AUDIO CLASS-SPECIFIC AC INTERFACE DESC    374 /* A.15 AUDIO CLASS-SPECIFIC AC INTERFACE DESCRIPTOR SUBTYPES */
375 /* see audio.h for the rest, which is identica    375 /* see audio.h for the rest, which is identical to v1 */
376 #define UAC3_EXTENDED_TERMINAL          0x04      376 #define UAC3_EXTENDED_TERMINAL          0x04
377 #define UAC3_MIXER_UNIT                 0x05      377 #define UAC3_MIXER_UNIT                 0x05
378 #define UAC3_SELECTOR_UNIT              0x06      378 #define UAC3_SELECTOR_UNIT              0x06
379 #define UAC3_FEATURE_UNIT               0x07      379 #define UAC3_FEATURE_UNIT               0x07
380 #define UAC3_EFFECT_UNIT                0x08      380 #define UAC3_EFFECT_UNIT                0x08
381 #define UAC3_PROCESSING_UNIT            0x09      381 #define UAC3_PROCESSING_UNIT            0x09
382 #define UAC3_EXTENSION_UNIT             0x0a      382 #define UAC3_EXTENSION_UNIT             0x0a
383 #define UAC3_CLOCK_SOURCE               0x0b      383 #define UAC3_CLOCK_SOURCE               0x0b
384 #define UAC3_CLOCK_SELECTOR             0x0c      384 #define UAC3_CLOCK_SELECTOR             0x0c
385 #define UAC3_CLOCK_MULTIPLIER           0x0d      385 #define UAC3_CLOCK_MULTIPLIER           0x0d
386 #define UAC3_SAMPLE_RATE_CONVERTER      0x0e      386 #define UAC3_SAMPLE_RATE_CONVERTER      0x0e
387 #define UAC3_CONNECTORS                 0x0f      387 #define UAC3_CONNECTORS                 0x0f
388 #define UAC3_POWER_DOMAIN               0x10      388 #define UAC3_POWER_DOMAIN               0x10
389                                                   389 
390 /* A.20 PROCESSING UNIT PROCESS TYPES */          390 /* A.20 PROCESSING UNIT PROCESS TYPES */
391 #define UAC3_PROCESS_UNDEFINED          0x00      391 #define UAC3_PROCESS_UNDEFINED          0x00
392 #define UAC3_PROCESS_UP_DOWNMIX         0x01      392 #define UAC3_PROCESS_UP_DOWNMIX         0x01
393 #define UAC3_PROCESS_STEREO_EXTENDER    0x02      393 #define UAC3_PROCESS_STEREO_EXTENDER    0x02
394 #define UAC3_PROCESS_MULTI_FUNCTION     0x03      394 #define UAC3_PROCESS_MULTI_FUNCTION     0x03
395                                                   395 
396 /* A.22 AUDIO CLASS-SPECIFIC REQUEST CODES */     396 /* A.22 AUDIO CLASS-SPECIFIC REQUEST CODES */
397 /* see audio-v2.h for the rest, which is ident    397 /* see audio-v2.h for the rest, which is identical to v2 */
398 #define UAC3_CS_REQ_INTEN                         398 #define UAC3_CS_REQ_INTEN                       0x04
399 #define UAC3_CS_REQ_STRING                        399 #define UAC3_CS_REQ_STRING                      0x05
400 #define UAC3_CS_REQ_HIGH_CAPABILITY_DESCRIPTOR    400 #define UAC3_CS_REQ_HIGH_CAPABILITY_DESCRIPTOR  0x06
401                                                   401 
402 /* A.23.1 AUDIOCONTROL INTERFACE CONTROL SELEC    402 /* A.23.1 AUDIOCONTROL INTERFACE CONTROL SELECTORS */
403 #define UAC3_AC_CONTROL_UNDEFINED                 403 #define UAC3_AC_CONTROL_UNDEFINED               0x00
404 #define UAC3_AC_ACTIVE_INTERFACE_CONTROL          404 #define UAC3_AC_ACTIVE_INTERFACE_CONTROL        0x01
405 #define UAC3_AC_POWER_DOMAIN_CONTROL              405 #define UAC3_AC_POWER_DOMAIN_CONTROL            0x02
406                                                   406 
407 /* A.23.5 TERMINAL CONTROL SELECTORS */           407 /* A.23.5 TERMINAL CONTROL SELECTORS */
408 #define UAC3_TE_UNDEFINED                         408 #define UAC3_TE_UNDEFINED                       0x00
409 #define UAC3_TE_INSERTION                         409 #define UAC3_TE_INSERTION                       0x01
410 #define UAC3_TE_OVERLOAD                          410 #define UAC3_TE_OVERLOAD                        0x02
411 #define UAC3_TE_UNDERFLOW                         411 #define UAC3_TE_UNDERFLOW                       0x03
412 #define UAC3_TE_OVERFLOW                          412 #define UAC3_TE_OVERFLOW                        0x04
413 #define UAC3_TE_LATENCY                           413 #define UAC3_TE_LATENCY                         0x05
414                                                   414 
415 /* A.23.10 PROCESSING UNITS CONTROL SELECTROS     415 /* A.23.10 PROCESSING UNITS CONTROL SELECTROS */
416                                                   416 
417 /* Up/Down Mixer */                               417 /* Up/Down Mixer */
418 #define UAC3_UD_MODE_SELECT                       418 #define UAC3_UD_MODE_SELECT                     0x01
419                                                   419 
420 /* Stereo Extender */                             420 /* Stereo Extender */
421 #define UAC3_EXT_WIDTH_CONTROL                    421 #define UAC3_EXT_WIDTH_CONTROL                  0x01
422                                                   422 
423                                                   423 
424 /* BADD predefined Unit/Terminal values */        424 /* BADD predefined Unit/Terminal values */
425 #define UAC3_BADD_IT_ID1        1  /* Input Te    425 #define UAC3_BADD_IT_ID1        1  /* Input Terminal ID1: bTerminalID = 1 */
426 #define UAC3_BADD_FU_ID2        2  /* Feature     426 #define UAC3_BADD_FU_ID2        2  /* Feature Unit ID2: bUnitID = 2 */
427 #define UAC3_BADD_OT_ID3        3  /* Output T    427 #define UAC3_BADD_OT_ID3        3  /* Output Terminal ID3: bTerminalID = 3 */
428 #define UAC3_BADD_IT_ID4        4  /* Input Te    428 #define UAC3_BADD_IT_ID4        4  /* Input Terminal ID4: bTerminalID = 4 */
429 #define UAC3_BADD_FU_ID5        5  /* Feature     429 #define UAC3_BADD_FU_ID5        5  /* Feature Unit ID5: bUnitID = 5 */
430 #define UAC3_BADD_OT_ID6        6  /* Output T    430 #define UAC3_BADD_OT_ID6        6  /* Output Terminal ID6: bTerminalID = 6 */
431 #define UAC3_BADD_FU_ID7        7  /* Feature     431 #define UAC3_BADD_FU_ID7        7  /* Feature Unit ID7: bUnitID = 7 */
432 #define UAC3_BADD_MU_ID8        8  /* Mixer Un    432 #define UAC3_BADD_MU_ID8        8  /* Mixer Unit ID8: bUnitID = 8 */
433 #define UAC3_BADD_CS_ID9        9  /* Clock So    433 #define UAC3_BADD_CS_ID9        9  /* Clock Source Entity ID9: bClockID = 9 */
434 #define UAC3_BADD_PD_ID10       10 /* Power Do    434 #define UAC3_BADD_PD_ID10       10 /* Power Domain ID10: bPowerDomainID = 10 */
435 #define UAC3_BADD_PD_ID11       11 /* Power Do    435 #define UAC3_BADD_PD_ID11       11 /* Power Domain ID11: bPowerDomainID = 11 */
436                                                   436 
437 /* BADD wMaxPacketSize of AS endpoints */         437 /* BADD wMaxPacketSize of AS endpoints */
438 #define UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_16        438 #define UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_16              0x0060
439 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_16       439 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_16             0x0062
440 #define UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_24        440 #define UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_24              0x0090
441 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_24       441 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_24             0x0093
442 #define UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_16      442 #define UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_16            0x00C0
443 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_16     443 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_16           0x00C4
444 #define UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_24      444 #define UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_24            0x0120
445 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_24     445 #define UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_24           0x0126
446                                                   446 
447 /* BADD sample rate is always fixed to 48kHz *    447 /* BADD sample rate is always fixed to 48kHz */
448 #define UAC3_BADD_SAMPLING_RATE                   448 #define UAC3_BADD_SAMPLING_RATE                         48000
449                                                   449 
450 /* BADD power domains recovery times in 50us i    450 /* BADD power domains recovery times in 50us increments */
451 #define UAC3_BADD_PD_RECOVER_D1D0                 451 #define UAC3_BADD_PD_RECOVER_D1D0                       0x0258  /* 30ms */
452 #define UAC3_BADD_PD_RECOVER_D2D0                 452 #define UAC3_BADD_PD_RECOVER_D2D0                       0x1770  /* 300ms */
453                                                   453 
454 #endif /* __LINUX_USB_AUDIO_V3_H */               454 #endif /* __LINUX_USB_AUDIO_V3_H */
455                                                   455 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php