diff options
author | Daniel Mack <daniel@caiaq.de> | 2010-03-11 15:13:25 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-03-12 06:21:26 -0500 |
commit | 23caaf19b11eda7054348452e1618d4512a86907 (patch) | |
tree | de0f69f74931fb033f3291c27691a3c2ac6367a2 /include/linux/usb/audio-v2.h | |
parent | 99fc86450c439039d2ef88d06b222fd51a779176 (diff) |
ALSA: usb-mixer: Add support for Audio Class v2.0
USB Audio Class v2.0 compliant devices have different descriptors and a
different way of setting/getting min/max/res/cur properties. This patch
adds support for them.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/linux/usb/audio-v2.h')
-rw-r--r-- | include/linux/usb/audio-v2.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/linux/usb/audio-v2.h b/include/linux/usb/audio-v2.h index 3b8560d233b..0952231e6c3 100644 --- a/include/linux/usb/audio-v2.h +++ b/include/linux/usb/audio-v2.h | |||
@@ -43,6 +43,53 @@ struct uac_clock_selector_descriptor { | |||
43 | __u8 baCSourceID[]; | 43 | __u8 baCSourceID[]; |
44 | } __attribute__((packed)); | 44 | } __attribute__((packed)); |
45 | 45 | ||
46 | /* 4.7.2.4 Input terminal descriptor */ | ||
47 | |||
48 | struct uac2_input_terminal_descriptor { | ||
49 | __u8 bLength; | ||
50 | __u8 bDescriptorType; | ||
51 | __u8 bDescriptorSubtype; | ||
52 | __u8 bTerminalID; | ||
53 | __u16 wTerminalType; | ||
54 | __u8 bAssocTerminal; | ||
55 | __u8 bCSourceID; | ||
56 | __u8 bNrChannels; | ||
57 | __u32 bmChannelConfig; | ||
58 | __u8 iChannelNames; | ||
59 | __u16 bmControls; | ||
60 | __u8 iTerminal; | ||
61 | } __attribute__((packed)); | ||
62 | |||
63 | /* 4.7.2.5 Output terminal descriptor */ | ||
64 | |||
65 | struct uac2_output_terminal_descriptor { | ||
66 | __u8 bLength; | ||
67 | __u8 bDescriptorType; | ||
68 | __u8 bDescriptorSubtype; | ||
69 | __u8 bTerminalID; | ||
70 | __u16 wTerminalType; | ||
71 | __u8 bAssocTerminal; | ||
72 | __u8 bSourceID; | ||
73 | __u8 bCSourceID; | ||
74 | __u16 bmControls; | ||
75 | __u8 iTerminal; | ||
76 | } __attribute__((packed)); | ||
77 | |||
78 | |||
79 | |||
80 | /* 4.7.2.8 Feature Unit Descriptor */ | ||
81 | |||
82 | struct uac2_feature_unit_descriptor { | ||
83 | __u8 bLength; | ||
84 | __u8 bDescriptorType; | ||
85 | __u8 bDescriptorSubtype; | ||
86 | __u8 bUnitID; | ||
87 | __u8 bSourceID; | ||
88 | /* bmaControls is actually u32, | ||
89 | * but u8 is needed for the hybrid parser */ | ||
90 | __u8 bmaControls[0]; /* variable length */ | ||
91 | } __attribute__((packed)); | ||
92 | |||
46 | /* 4.9.2 Class-Specific AS Interface Descriptor */ | 93 | /* 4.9.2 Class-Specific AS Interface Descriptor */ |
47 | 94 | ||
48 | struct uac_as_header_descriptor_v2 { | 95 | struct uac_as_header_descriptor_v2 { |