@@ -196,20 +196,33 @@ static inline __u8 uac_mixer_unit_bNrChannels(struct uac_mixer_unit_descriptor *
196
196
return desc -> baSourceID [desc -> bNrInPins ];
197
197
}
198
198
199
- static inline __u16 uac_mixer_unit_wChannelConfig (struct uac_mixer_unit_descriptor * desc )
199
+ static inline __u32 uac_mixer_unit_wChannelConfig (struct uac_mixer_unit_descriptor * desc ,
200
+ int protocol )
200
201
{
201
- return (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
202
- desc -> baSourceID [desc -> bNrInPins + 1 ];
202
+ if (protocol == UAC_VERSION_1 )
203
+ return (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
204
+ desc -> baSourceID [desc -> bNrInPins + 1 ];
205
+ else
206
+ return (desc -> baSourceID [desc -> bNrInPins + 4 ] << 24 ) |
207
+ (desc -> baSourceID [desc -> bNrInPins + 3 ] << 16 ) |
208
+ (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
209
+ (desc -> baSourceID [desc -> bNrInPins + 1 ]);
203
210
}
204
211
205
- static inline __u8 uac_mixer_unit_iChannelNames (struct uac_mixer_unit_descriptor * desc )
212
+ static inline __u8 uac_mixer_unit_iChannelNames (struct uac_mixer_unit_descriptor * desc ,
213
+ int protocol )
206
214
{
207
- return desc -> baSourceID [desc -> bNrInPins + 3 ];
215
+ return (protocol == UAC_VERSION_1 ) ?
216
+ desc -> baSourceID [desc -> bNrInPins + 3 ] :
217
+ desc -> baSourceID [desc -> bNrInPins + 5 ];
208
218
}
209
219
210
- static inline __u8 * uac_mixer_unit_bmControls (struct uac_mixer_unit_descriptor * desc )
220
+ static inline __u8 * uac_mixer_unit_bmControls (struct uac_mixer_unit_descriptor * desc ,
221
+ int protocol )
211
222
{
212
- return & desc -> baSourceID [desc -> bNrInPins + 4 ];
223
+ return (protocol == UAC_VERSION_1 ) ?
224
+ & desc -> baSourceID [desc -> bNrInPins + 4 ] :
225
+ & desc -> baSourceID [desc -> bNrInPins + 6 ];
213
226
}
214
227
215
228
static inline __u8 uac_mixer_unit_iMixer (struct uac_mixer_unit_descriptor * desc )
@@ -267,36 +280,54 @@ static inline __u8 uac_processing_unit_bNrChannels(struct uac_processing_unit_de
267
280
return desc -> baSourceID [desc -> bNrInPins ];
268
281
}
269
282
270
- static inline __u16 uac_processing_unit_wChannelConfig (struct uac_processing_unit_descriptor * desc )
283
+ static inline __u32 uac_processing_unit_wChannelConfig (struct uac_processing_unit_descriptor * desc ,
284
+ int protocol )
271
285
{
272
- return (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
273
- desc -> baSourceID [desc -> bNrInPins + 1 ];
286
+ if (protocol == UAC_VERSION_1 )
287
+ return (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
288
+ desc -> baSourceID [desc -> bNrInPins + 1 ];
289
+ else
290
+ return (desc -> baSourceID [desc -> bNrInPins + 4 ] << 24 ) |
291
+ (desc -> baSourceID [desc -> bNrInPins + 3 ] << 16 ) |
292
+ (desc -> baSourceID [desc -> bNrInPins + 2 ] << 8 ) |
293
+ (desc -> baSourceID [desc -> bNrInPins + 1 ]);
274
294
}
275
295
276
- static inline __u8 uac_processing_unit_iChannelNames (struct uac_processing_unit_descriptor * desc )
296
+ static inline __u8 uac_processing_unit_iChannelNames (struct uac_processing_unit_descriptor * desc ,
297
+ int protocol )
277
298
{
278
- return desc -> baSourceID [desc -> bNrInPins + 3 ];
299
+ return (protocol == UAC_VERSION_1 ) ?
300
+ desc -> baSourceID [desc -> bNrInPins + 3 ] :
301
+ desc -> baSourceID [desc -> bNrInPins + 5 ];
279
302
}
280
303
281
- static inline __u8 uac_processing_unit_bControlSize (struct uac_processing_unit_descriptor * desc )
304
+ static inline __u8 uac_processing_unit_bControlSize (struct uac_processing_unit_descriptor * desc ,
305
+ int protocol )
282
306
{
283
- return desc -> baSourceID [desc -> bNrInPins + 4 ];
307
+ return (protocol == UAC_VERSION_1 ) ?
308
+ desc -> baSourceID [desc -> bNrInPins + 4 ] :
309
+ desc -> baSourceID [desc -> bNrInPins + 6 ];
284
310
}
285
311
286
- static inline __u8 * uac_processing_unit_bmControls (struct uac_processing_unit_descriptor * desc )
312
+ static inline __u8 * uac_processing_unit_bmControls (struct uac_processing_unit_descriptor * desc ,
313
+ int protocol )
287
314
{
288
- return & desc -> baSourceID [desc -> bNrInPins + 5 ];
315
+ return (protocol == UAC_VERSION_1 ) ?
316
+ & desc -> baSourceID [desc -> bNrInPins + 5 ] :
317
+ & desc -> baSourceID [desc -> bNrInPins + 7 ];
289
318
}
290
319
291
- static inline __u8 uac_processing_unit_iProcessing (struct uac_processing_unit_descriptor * desc )
320
+ static inline __u8 uac_processing_unit_iProcessing (struct uac_processing_unit_descriptor * desc ,
321
+ int protocol )
292
322
{
293
- __u8 control_size = uac_processing_unit_bControlSize (desc );
323
+ __u8 control_size = uac_processing_unit_bControlSize (desc , protocol );
294
324
return desc -> baSourceID [desc -> bNrInPins + control_size ];
295
325
}
296
326
297
- static inline __u8 * uac_processing_unit_specific (struct uac_processing_unit_descriptor * desc )
327
+ static inline __u8 * uac_processing_unit_specific (struct uac_processing_unit_descriptor * desc ,
328
+ int protocol )
298
329
{
299
- __u8 control_size = uac_processing_unit_bControlSize (desc );
330
+ __u8 control_size = uac_processing_unit_bControlSize (desc , protocol );
300
331
return & desc -> baSourceID [desc -> bNrInPins + control_size + 1 ];
301
332
}
302
333
0 commit comments