| .. | .. |
|---|
| 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 |
|---|