Lines Matching +full:protocol +full:- +full:id
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
3 * <linux/usb/audio.h> -- USB Audio definitions.
37 /* A.5 Audio Class-Specific AC Interface Descriptor Subtypes */
47 /* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */
61 /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */
64 /* A.9 Audio Class-Specific Request Codes */
104 #define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1))
106 /* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */
141 /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */
146 /* MIDI - A.1 MS Class-Specific Endpoint Descriptor Subtypes */
149 /* Terminals - 2.1 USB Terminal Types */
155 /* 4.3.2 Class-Specific AC Interface Descriptor */
185 __u8 bTerminalID; /* Constant uniquely terminal ID */
187 __u8 bAssocTerminal; /* ID of the Output Terminal associated */
196 /* Terminals - 2.2 Input Terminal Types */
205 /* Terminals - control selectors */
214 __u8 bTerminalID; /* Constant uniquely terminal ID */
216 __u8 bAssocTerminal; /* ID of the Input Terminal associated */
217 __u8 bSourceID; /* ID of the connected Unit or Terminal*/
223 /* Terminals - 2.3 Output Terminal Types */
233 /* Terminals - 2.4 Bi-directional Terminal Types */
269 return desc->baSourceID[desc->bNrInPins]; in uac_mixer_unit_bNrChannels()
273 int protocol) in uac_mixer_unit_wChannelConfig() argument
275 if (protocol == UAC_VERSION_1) in uac_mixer_unit_wChannelConfig()
276 return (desc->baSourceID[desc->bNrInPins + 2] << 8) | in uac_mixer_unit_wChannelConfig()
277 desc->baSourceID[desc->bNrInPins + 1]; in uac_mixer_unit_wChannelConfig()
279 return (desc->baSourceID[desc->bNrInPins + 4] << 24) | in uac_mixer_unit_wChannelConfig()
280 (desc->baSourceID[desc->bNrInPins + 3] << 16) | in uac_mixer_unit_wChannelConfig()
281 (desc->baSourceID[desc->bNrInPins + 2] << 8) | in uac_mixer_unit_wChannelConfig()
282 (desc->baSourceID[desc->bNrInPins + 1]); in uac_mixer_unit_wChannelConfig()
286 int protocol) in uac_mixer_unit_iChannelNames() argument
288 return (protocol == UAC_VERSION_1) ? in uac_mixer_unit_iChannelNames()
289 desc->baSourceID[desc->bNrInPins + 3] : in uac_mixer_unit_iChannelNames()
290 desc->baSourceID[desc->bNrInPins + 5]; in uac_mixer_unit_iChannelNames()
294 int protocol) in uac_mixer_unit_bmControls() argument
296 switch (protocol) { in uac_mixer_unit_bmControls()
298 return &desc->baSourceID[desc->bNrInPins + 4]; in uac_mixer_unit_bmControls()
300 return &desc->baSourceID[desc->bNrInPins + 6]; in uac_mixer_unit_bmControls()
302 return &desc->baSourceID[desc->bNrInPins + 2]; in uac_mixer_unit_bmControls()
310 return (desc->baSourceID[desc->bNrInPins + 1] << 8) | in uac3_mixer_unit_wClusterDescrID()
311 desc->baSourceID[desc->bNrInPins]; in uac3_mixer_unit_wClusterDescrID()
317 return raw[desc->bLength - 1]; in uac_mixer_unit_iMixer()
333 return raw[desc->bLength - 1]; in uac_selector_unit_iSelector()
350 return raw[desc->bLength - 1]; in uac_feature_unit_iFeature()
366 return desc->baSourceID[desc->bNrInPins]; in uac_processing_unit_bNrChannels()
370 int protocol) in uac_processing_unit_wChannelConfig() argument
372 if (protocol == UAC_VERSION_1) in uac_processing_unit_wChannelConfig()
373 return (desc->baSourceID[desc->bNrInPins + 2] << 8) | in uac_processing_unit_wChannelConfig()
374 desc->baSourceID[desc->bNrInPins + 1]; in uac_processing_unit_wChannelConfig()
376 return (desc->baSourceID[desc->bNrInPins + 4] << 24) | in uac_processing_unit_wChannelConfig()
377 (desc->baSourceID[desc->bNrInPins + 3] << 16) | in uac_processing_unit_wChannelConfig()
378 (desc->baSourceID[desc->bNrInPins + 2] << 8) | in uac_processing_unit_wChannelConfig()
379 (desc->baSourceID[desc->bNrInPins + 1]); in uac_processing_unit_wChannelConfig()
383 int protocol) in uac_processing_unit_iChannelNames() argument
385 return (protocol == UAC_VERSION_1) ? in uac_processing_unit_iChannelNames()
386 desc->baSourceID[desc->bNrInPins + 3] : in uac_processing_unit_iChannelNames()
387 desc->baSourceID[desc->bNrInPins + 5]; in uac_processing_unit_iChannelNames()
391 int protocol) in uac_processing_unit_bControlSize() argument
393 switch (protocol) { in uac_processing_unit_bControlSize()
395 return desc->baSourceID[desc->bNrInPins + 4]; in uac_processing_unit_bControlSize()
406 int protocol) in uac_processing_unit_bmControls() argument
408 switch (protocol) { in uac_processing_unit_bmControls()
410 return &desc->baSourceID[desc->bNrInPins + 5]; in uac_processing_unit_bmControls()
412 return &desc->baSourceID[desc->bNrInPins + 6]; in uac_processing_unit_bmControls()
414 return &desc->baSourceID[desc->bNrInPins + 2]; in uac_processing_unit_bmControls()
421 int protocol) in uac_processing_unit_iProcessing() argument
423 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); in uac_processing_unit_iProcessing()
425 switch (protocol) { in uac_processing_unit_iProcessing()
429 return *(uac_processing_unit_bmControls(desc, protocol) in uac_processing_unit_iProcessing()
437 int protocol) in uac_processing_unit_specific() argument
439 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); in uac_processing_unit_specific()
441 switch (protocol) { in uac_processing_unit_specific()
445 return uac_processing_unit_bmControls(desc, protocol) in uac_processing_unit_specific()
448 return uac_processing_unit_bmControls(desc, protocol) in uac_processing_unit_specific()
456 * XU while 2 bytes for PU. The last iExtension field is a one-byte index as
460 int protocol) in uac_extension_unit_bControlSize() argument
462 switch (protocol) { in uac_extension_unit_bControlSize()
464 return desc->baSourceID[desc->bNrInPins + 4]; in uac_extension_unit_bControlSize()
475 int protocol) in uac_extension_unit_iExtension() argument
477 __u8 control_size = uac_extension_unit_bControlSize(desc, protocol); in uac_extension_unit_iExtension()
479 switch (protocol) { in uac_extension_unit_iExtension()
483 return *(uac_processing_unit_bmControls(desc, protocol) in uac_extension_unit_iExtension()
490 /* 4.5.2 Class-Specific AS Interface Descriptor */
495 __u8 bTerminalLink; /* Terminal ID of connected Terminal */
502 /* Formats - A.1.1 Audio Data Format Type I Codes */
564 /* Formats - Audio Data Format Type I Codes */
599 /* Formats - A.2 Format Type Codes */