.. | .. |
---|
153 | 153 | __u8 bSourceID; |
---|
154 | 154 | /* bmaControls is actually u32, |
---|
155 | 155 | * but u8 is needed for the hybrid parser */ |
---|
156 | | - __u8 bmaControls[0]; /* variable length */ |
---|
| 156 | + __u8 bmaControls[]; /* variable length */ |
---|
157 | 157 | } __attribute__((packed)); |
---|
158 | 158 | |
---|
159 | 159 | #define UAC2_DT_FEATURE_UNIT_SIZE(ch) (6 + ((ch) + 1) * 4) |
---|
.. | .. |
---|
168 | 168 | __u8 bSourceID; \ |
---|
169 | 169 | __le32 bmaControls[ch + 1]; \ |
---|
170 | 170 | __u8 iFeature; \ |
---|
171 | | -} __attribute__((packed)) |
---|
| 171 | +} __packed |
---|
| 172 | + |
---|
| 173 | +/* 4.7.2.10 Effect Unit Descriptor */ |
---|
| 174 | + |
---|
| 175 | +struct uac2_effect_unit_descriptor { |
---|
| 176 | + __u8 bLength; |
---|
| 177 | + __u8 bDescriptorType; |
---|
| 178 | + __u8 bDescriptorSubtype; |
---|
| 179 | + __u8 bUnitID; |
---|
| 180 | + __le16 wEffectType; |
---|
| 181 | + __u8 bSourceID; |
---|
| 182 | + __u8 bmaControls[]; /* variable length */ |
---|
| 183 | +} __attribute__((packed)); |
---|
172 | 184 | |
---|
173 | 185 | /* 4.9.2 Class-Specific AS Interface Descriptor */ |
---|
174 | 186 | |
---|
.. | .. |
---|
332 | 344 | #define UAC2_FU_UNDERFLOW 0x0e |
---|
333 | 345 | #define UAC2_FU_OVERFLOW 0x0f |
---|
334 | 346 | #define UAC2_FU_LATENCY 0x10 |
---|
335 | | - |
---|
336 | | -#define UAC2_CONTROL_BIT_RO(CS) (0x01 << (((CS) - 1) << 1)) |
---|
337 | | -#define UAC2_CONTROL_BIT_RW(CS) (0x03 << (((CS) - 1) << 1)) |
---|
338 | 347 | |
---|
339 | 348 | /* A.17.8.1 Parametric Equalizer Section Effect Unit Control Selectors */ |
---|
340 | 349 | #define UAC2_PE_UNDEFINED 0x00 |
---|