#ifndef __LINUX_USB_AUDIO_V2_H
#define __LINUX_USB_AUDIO_V2_H
#include <linux/types.h>
static inline bool uac_v2v3_control_is_readable(u32 bmControls, u8 control)
{ … }
static inline bool uac_v2v3_control_is_writeable(u32 bmControls, u8 control)
{ … }
struct uac2_ac_header_descriptor { … } __packed;
struct uac2_format_type_i_descriptor { … } __packed;
struct uac_clock_source_descriptor { … } __attribute__((packed));
#define UAC_CLOCK_SOURCE_TYPE_EXT …
#define UAC_CLOCK_SOURCE_TYPE_INT_FIXED …
#define UAC_CLOCK_SOURCE_TYPE_INT_VAR …
#define UAC_CLOCK_SOURCE_TYPE_INT_PROG …
#define UAC_CLOCK_SOURCE_SYNCED_TO_SOF …
struct uac_clock_selector_descriptor { … } __attribute__((packed));
struct uac_clock_multiplier_descriptor { … } __attribute__((packed));
struct uac2_input_terminal_descriptor { … } __attribute__((packed));
struct uac2_output_terminal_descriptor { … } __attribute__((packed));
struct uac2_feature_unit_descriptor { … } __attribute__((packed));
#define UAC2_DT_FEATURE_UNIT_SIZE(ch) …
#define DECLARE_UAC2_FEATURE_UNIT_DESCRIPTOR(ch) …
struct uac2_effect_unit_descriptor { … } __attribute__((packed));
struct uac2_as_header_descriptor { … } __attribute__((packed));
#define UAC2_FORMAT_TYPE_I_RAW_DATA …
struct uac2_iso_endpoint_descriptor { … } __attribute__((packed));
#define UAC2_CONTROL_PITCH …
#define UAC2_CONTROL_DATA_OVERRUN …
#define UAC2_CONTROL_DATA_UNDERRUN …
struct uac2_connectors_ctl_blk { … } __attribute__((packed));
#define UAC2_INTERRUPT_DATA_MSG_VENDOR …
#define UAC2_INTERRUPT_DATA_MSG_EP …
struct uac2_interrupt_data_msg { … } __attribute__((packed));
#define UAC2_FUNCTION_SUBCLASS_UNDEFINED …
#define UAC2_FUNCTION_DESKTOP_SPEAKER …
#define UAC2_FUNCTION_HOME_THEATER …
#define UAC2_FUNCTION_MICROPHONE …
#define UAC2_FUNCTION_HEADSET …
#define UAC2_FUNCTION_TELEPHONE …
#define UAC2_FUNCTION_CONVERTER …
#define UAC2_FUNCTION_SOUND_RECORDER …
#define UAC2_FUNCTION_IO_BOX …
#define UAC2_FUNCTION_MUSICAL_INSTRUMENT …
#define UAC2_FUNCTION_PRO_AUDIO …
#define UAC2_FUNCTION_AUDIO_VIDEO …
#define UAC2_FUNCTION_CONTROL_PANEL …
#define UAC2_FUNCTION_OTHER …
#define UAC2_EFFECT_UNIT …
#define UAC2_PROCESSING_UNIT_V2 …
#define UAC2_EXTENSION_UNIT_V2 …
#define UAC2_CLOCK_SOURCE …
#define UAC2_CLOCK_SELECTOR …
#define UAC2_CLOCK_MULTIPLIER …
#define UAC2_SAMPLE_RATE_CONVERTER …
#define UAC2_ENCODER …
#define UAC2_DECODER …
#define UAC2_EFFECT_UNDEFINED …
#define UAC2_EFFECT_PARAM_EQ …
#define UAC2_EFFECT_REVERB …
#define UAC2_EFFECT_MOD_DELAY …
#define UAC2_EFFECT_DYN_RANGE_COMP …
#define UAC2_PROCESS_UNDEFINED …
#define UAC2_PROCESS_UP_DOWNMIX …
#define UAC2_PROCESS_DOLBY_PROLOCIC …
#define UAC2_PROCESS_STEREO_EXTENDER …
#define UAC2_CS_CUR …
#define UAC2_CS_RANGE …
#define UAC2_CS_MEM …
#define UAC2_ENCODER_UNDEFINED …
#define UAC2_ENCODER_OTHER …
#define UAC2_ENCODER_MPEG …
#define UAC2_ENCODER_AC3 …
#define UAC2_ENCODER_WMA …
#define UAC2_ENCODER_DTS …
#define UAC2_DECODER_UNDEFINED …
#define UAC2_DECODER_OTHER …
#define UAC2_DECODER_MPEG …
#define UAC2_DECODER_AC3 …
#define UAC2_DECODER_WMA …
#define UAC2_DECODER_DTS …
#define UAC2_CS_UNDEFINED …
#define UAC2_CS_CONTROL_SAM_FREQ …
#define UAC2_CS_CONTROL_CLOCK_VALID …
#define UAC2_CX_UNDEFINED …
#define UAC2_CX_CLOCK_SELECTOR …
#define UAC2_CM_UNDEFINED …
#define UAC2_CM_NUMERATOR …
#define UAC2_CM_DENOMINTATOR …
#define UAC2_TE_UNDEFINED …
#define UAC2_TE_COPY_PROTECT …
#define UAC2_TE_CONNECTOR …
#define UAC2_TE_OVERLOAD …
#define UAC2_TE_CLUSTER …
#define UAC2_TE_UNDERFLOW …
#define UAC2_TE_OVERFLOW …
#define UAC2_TE_LATENCY …
#define UAC2_MU_UNDEFINED …
#define UAC2_MU_MIXER …
#define UAC2_MU_CLUSTER …
#define UAC2_MU_UNDERFLOW …
#define UAC2_MU_OVERFLOW …
#define UAC2_MU_LATENCY …
#define UAC2_SU_UNDEFINED …
#define UAC2_SU_SELECTOR …
#define UAC2_SU_LATENCY …
#define UAC2_FU_INPUT_GAIN …
#define UAC2_FU_INPUT_GAIN_PAD …
#define UAC2_FU_PHASE_INVERTER …
#define UAC2_FU_UNDERFLOW …
#define UAC2_FU_OVERFLOW …
#define UAC2_FU_LATENCY …
#define UAC2_PE_UNDEFINED …
#define UAC2_PE_ENABLE …
#define UAC2_PE_CENTERFREQ …
#define UAC2_PE_QFACTOR …
#define UAC2_PE_GAIN …
#define UAC2_PE_UNDERFLOW …
#define UAC2_PE_OVERFLOW …
#define UAC2_PE_LATENCY …
#define UAC2_RV_UNDEFINED …
#define UAC2_RV_ENABLE …
#define UAC2_RV_TYPE …
#define UAC2_RV_LEVEL …
#define UAC2_RV_TIME …
#define UAC2_RV_FEEDBACK …
#define UAC2_RV_PREDELAY …
#define UAC2_RV_DENSITY …
#define UAC2_RV_HIFREQ_ROLLOFF …
#define UAC2_RV_UNDERFLOW …
#define UAC2_RV_OVERFLOW …
#define UAC2_RV_LATENCY …
#define UAC2_MD_UNDEFINED …
#define UAC2_MD_ENABLE …
#define UAC2_MD_BALANCE …
#define UAC2_MD_RATE …
#define UAC2_MD_DEPTH …
#define UAC2_MD_TIME …
#define UAC2_MD_FEEDBACK …
#define UAC2_MD_UNDERFLOW …
#define UAC2_MD_OVERFLOW …
#define UAC2_MD_LATENCY …
#define UAC2_DR_UNDEFINED …
#define UAC2_DR_ENABLE …
#define UAC2_DR_COMPRESSION_RATE …
#define UAC2_DR_MAXAMPL …
#define UAC2_DR_THRESHOLD …
#define UAC2_DR_ATTACK_TIME …
#define UAC2_DR_RELEASE_TIME …
#define UAC2_DR_UNDEFLOW …
#define UAC2_DR_OVERFLOW …
#define UAC2_DR_LATENCY …
#define UAC2_UD_UNDEFINED …
#define UAC2_UD_ENABLE …
#define UAC2_UD_MODE_SELECT …
#define UAC2_UD_CLUSTER …
#define UAC2_UD_UNDERFLOW …
#define UAC2_UD_OVERFLOW …
#define UAC2_UD_LATENCY …
#define UAC2_DP_UNDEFINED …
#define UAC2_DP_ENABLE …
#define UAC2_DP_MODE_SELECT …
#define UAC2_DP_CLUSTER …
#define UAC2_DP_UNDERFFLOW …
#define UAC2_DP_OVERFLOW …
#define UAC2_DP_LATENCY …
#define UAC2_ST_EXT_UNDEFINED …
#define UAC2_ST_EXT_ENABLE …
#define UAC2_ST_EXT_WIDTH …
#define UAC2_ST_EXT_UNDEFLOW …
#define UAC2_ST_EXT_OVERFLOW …
#define UAC2_ST_EXT_LATENCY …
#define UAC2_XU_UNDEFINED …
#define UAC2_XU_ENABLE …
#define UAC2_XU_CLUSTER …
#define UAC2_XU_UNDERFLOW …
#define UAC2_XU_OVERFLOW …
#define UAC2_XU_LATENCY …
#define UAC2_AS_UNDEFINED …
#define UAC2_AS_ACT_ALT_SETTING …
#define UAC2_AS_VAL_ALT_SETTINGS …
#define UAC2_AS_AUDIO_DATA_FORMAT …
#define UAC2_EN_UNDEFINED …
#define UAC2_EN_BIT_RATE …
#define UAC2_EN_QUALITY …
#define UAC2_EN_VBR …
#define UAC2_EN_TYPE …
#define UAC2_EN_UNDERFLOW …
#define UAC2_EN_OVERFLOW …
#define UAC2_EN_ENCODER_ERROR …
#define UAC2_EN_PARAM1 …
#define UAC2_EN_PARAM2 …
#define UAC2_EN_PARAM3 …
#define UAC2_EN_PARAM4 …
#define UAC2_EN_PARAM5 …
#define UAC2_EN_PARAM6 …
#define UAC2_EN_PARAM7 …
#define UAC2_EN_PARAM8 …
#define UAC2_MPEG_UNDEFINED …
#define UAC2_MPEG_DUAL_CHANNEL …
#define UAC2_MPEG_SECOND_STEREO …
#define UAC2_MPEG_MULTILINGUAL …
#define UAC2_MPEG_DYN_RANGE …
#define UAC2_MPEG_SCALING …
#define UAC2_MPEG_HILO_SCALING …
#define UAC2_MPEG_UNDERFLOW …
#define UAC2_MPEG_OVERFLOW …
#define UAC2_MPEG_DECODER_ERROR …
#define UAC2_AC3_UNDEFINED …
#define UAC2_AC3_MODE …
#define UAC2_AC3_DYN_RANGE …
#define UAC2_AC3_SCALING …
#define UAC2_AC3_HILO_SCALING …
#define UAC2_AC3_UNDERFLOW …
#define UAC2_AC3_OVERFLOW …
#define UAC2_AC3_DECODER_ERROR …
#define UAC2_WMA_UNDEFINED …
#define UAC2_WMA_UNDERFLOW …
#define UAC2_WMA_OVERFLOW …
#define UAC2_WMA_DECODER_ERROR …
#define UAC2_DTS_UNDEFINED …
#define UAC2_DTS_UNDERFLOW …
#define UAC2_DTS_OVERFLOW …
#define UAC2_DTS_DECODER_ERROR …
#define UAC2_EP_CS_UNDEFINED …
#define UAC2_EP_CS_PITCH …
#define UAC2_EP_CS_DATA_OVERRUN …
#define UAC2_EP_CS_DATA_UNDERRUN …
#endif