1 #define USB_DT_CS_DEVICE 0x21
2 #define USB_DT_CS_CONFIG 0x22
3 #define USB_DT_CS_STRING 0x23
4 #define USB_DT_CS_INTERFACE 0x24
5 #define USB_DT_CS_ENDPOINT 0x25
7 #define CS_AUDIO_UNDEFINED 0x20
8 #define CS_AUDIO_DEVICE 0x21
9 #define CS_AUDIO_CONFIGURATION 0x22
10 #define CS_AUDIO_STRING 0x23
11 #define CS_AUDIO_INTERFACE 0x24
12 #define CS_AUDIO_ENDPOINT 0x25
15 #define INPUT_TERMINAL 0x02
16 #define OUTPUT_TERMINAL 0x03
17 #define MIXER_UNIT 0x04
18 #define SELECTOR_UNIT 0x05
19 #define FEATURE_UNIT 0x06
20 #define PROCESSING_UNIT 0x07
21 #define EXTENSION_UNIT 0x08
23 #define AS_GENERAL 0x01
24 #define FORMAT_TYPE 0x02
25 #define FORMAT_SPECIFIC 0x03
27 #define EP_GENERAL 0x01
33 #define MAX_ALT 32 /* Sorry, we need quite a few for the Philips webcams */
35 struct usb_audio_terminal
39 u16 type
; /* Mic etc */
45 struct usb_audio_format
55 struct usb_audio_interface
62 u8 idleconf
; /* Idle config */
63 #define AU_IFACE_FOUND 1
64 struct usb_audio_format format
[MAX_FORMAT
];
67 struct usb_audio_device
69 struct list_head list
;
75 u8 channel_map
[MAX_CHAN
];
76 struct usb_audio_terminal terminal
[MAX_CHAN
];
77 struct usb_audio_interface interface
[MAX_IFACE
][MAX_ALT
];
82 /* Audio Class specific Request Codes */
96 /* Terminal Control Selectors */
98 #define COPY_PROTECT_CONTROL 0x01
100 /* Feature Unit Control Selectors */
102 #define MUTE_CONTROL 0x01
103 #define VOLUME_CONTROL 0x02
104 #define BASS_CONTROL 0x03
105 #define MID_CONTROL 0x04
106 #define TREBLE_CONTROL 0x05
107 #define GRAPHIC_EQUALIZER_CONTROL 0x06
108 #define AUTOMATIC_GAIN_CONTROL 0x07
109 #define DELAY_CONTROL 0x08
110 #define BASS_BOOST_CONTROL 0x09
111 #define LOUDNESS_CONTROL 0x0a
113 /* Endpoint Control Selectors */
115 #define SAMPLING_FREQ_CONTROL 0x01
116 #define PITCH_CONTROL 0x02