asoc.h revision 106b3a8a7dc03c19a45e322de425ac56aafac358
1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __LINUX_UAPI_SND_ASOC_H
20#define __LINUX_UAPI_SND_ASOC_H
21#include <linux/types.h>
22#include <sound/asound.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#error This API is an early revision and not enabled in the current
25#error kernel release , it will be enabled in a future kernel version
26#error with incompatible changes to what is here .
27#define SND_SOC_TPLG_MAX_CHAN 8
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define SND_SOC_TPLG_MAX_FORMATS 16
30#define SND_SOC_TPLG_STREAM_CONFIG_MAX 8
31#define SND_SOC_TPLG_CTL_VOLSW 1
32#define SND_SOC_TPLG_CTL_VOLSW_SX 2
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3
35#define SND_SOC_TPLG_CTL_ENUM 4
36#define SND_SOC_TPLG_CTL_BYTES 5
37#define SND_SOC_TPLG_CTL_ENUM_VALUE 6
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define SND_SOC_TPLG_CTL_RANGE 7
40#define SND_SOC_TPLG_CTL_STROBE 8
41#define SND_SOC_TPLG_DAPM_CTL_VOLSW 64
42#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66
45#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67
46#define SND_SOC_TPLG_DAPM_CTL_PIN 68
47#define SND_SOC_TPLG_DAPM_INPUT 0
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define SND_SOC_TPLG_DAPM_OUTPUT 1
50#define SND_SOC_TPLG_DAPM_MUX 2
51#define SND_SOC_TPLG_DAPM_MIXER 3
52#define SND_SOC_TPLG_DAPM_PGA 4
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define SND_SOC_TPLG_DAPM_OUT_DRV 5
55#define SND_SOC_TPLG_DAPM_ADC 6
56#define SND_SOC_TPLG_DAPM_DAC 7
57#define SND_SOC_TPLG_DAPM_SWITCH 8
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define SND_SOC_TPLG_DAPM_PRE 9
60#define SND_SOC_TPLG_DAPM_POST 10
61#define SND_SOC_TPLG_DAPM_AIF_IN 11
62#define SND_SOC_TPLG_DAPM_AIF_OUT 12
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64#define SND_SOC_TPLG_DAPM_DAI_IN 13
65#define SND_SOC_TPLG_DAPM_DAI_OUT 14
66#define SND_SOC_TPLG_DAPM_DAI_LINK 15
67#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69#define SND_SOC_TPLG_MAGIC 0x41536F43
70#define SND_SOC_TPLG_NUM_TEXTS 16
71#define SND_SOC_TPLG_ABI_VERSION 0x4
72#define SND_SOC_TPLG_TLV_SIZE 32
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define SND_SOC_TPLG_TYPE_MIXER 1
75#define SND_SOC_TPLG_TYPE_BYTES 2
76#define SND_SOC_TPLG_TYPE_ENUM 3
77#define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5
80#define SND_SOC_TPLG_TYPE_DAI_LINK 6
81#define SND_SOC_TPLG_TYPE_PCM 7
82#define SND_SOC_TPLG_TYPE_MANIFEST 8
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
85#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
86#define SND_SOC_TPLG_TYPE_PDATA 11
87#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
90#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001
91#define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002
92#define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define SND_SOC_TPLG_STREAM_PLAYBACK 0
95#define SND_SOC_TPLG_STREAM_CAPTURE 1
96#define SND_SOC_TPLG_TUPLE_TYPE_UUID 0
97#define SND_SOC_TPLG_TUPLE_TYPE_STRING 1
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define SND_SOC_TPLG_TUPLE_TYPE_BOOL 2
100#define SND_SOC_TPLG_TUPLE_TYPE_BYTE 3
101#define SND_SOC_TPLG_TUPLE_TYPE_WORD 4
102#define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104struct snd_soc_tplg_hdr {
105  __le32 magic;
106  __le32 abi;
107  __le32 version;
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  __le32 type;
110  __le32 size;
111  __le32 vendor_type;
112  __le32 payload_size;
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  __le32 index;
115  __le32 count;
116} __attribute__((packed));
117struct snd_soc_tplg_vendor_uuid_elem {
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  __le32 token;
120  char uuid[16];
121} __attribute__((packed));
122struct snd_soc_tplg_vendor_value_elem {
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  __le32 token;
125  __le32 value;
126} __attribute__((packed));
127struct snd_soc_tplg_vendor_string_elem {
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  __le32 token;
130  char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
131} __attribute__((packed));
132struct snd_soc_tplg_vendor_array {
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  __le32 size;
135  __le32 type;
136  __le32 num_elems;
137  union {
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139    struct snd_soc_tplg_vendor_uuid_elem uuid[0];
140    struct snd_soc_tplg_vendor_value_elem value[0];
141    struct snd_soc_tplg_vendor_string_elem string[0];
142  };
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144} __attribute__((packed));
145struct snd_soc_tplg_private {
146  __le32 size;
147  union {
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149    char data[0];
150    struct snd_soc_tplg_vendor_array array[0];
151  };
152} __attribute__((packed));
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154struct snd_soc_tplg_tlv_dbscale {
155  __le32 min;
156  __le32 step;
157  __le32 mute;
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159} __attribute__((packed));
160struct snd_soc_tplg_ctl_tlv {
161  __le32 size;
162  __le32 type;
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  union {
165    __le32 data[SND_SOC_TPLG_TLV_SIZE];
166    struct snd_soc_tplg_tlv_dbscale scale;
167  };
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169} __attribute__((packed));
170struct snd_soc_tplg_channel {
171  __le32 size;
172  __le32 reg;
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  __le32 shift;
175  __le32 id;
176} __attribute__((packed));
177struct snd_soc_tplg_io_ops {
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  __le32 get;
180  __le32 put;
181  __le32 info;
182} __attribute__((packed));
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184struct snd_soc_tplg_ctl_hdr {
185  __le32 size;
186  __le32 type;
187  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  __le32 access;
190  struct snd_soc_tplg_io_ops ops;
191  struct snd_soc_tplg_ctl_tlv tlv;
192} __attribute__((packed));
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194struct snd_soc_tplg_stream_caps {
195  __le32 size;
196  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
197  __le64 formats;
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  __le32 rates;
200  __le32 rate_min;
201  __le32 rate_max;
202  __le32 channels_min;
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  __le32 channels_max;
205  __le32 periods_min;
206  __le32 periods_max;
207  __le32 period_size_min;
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  __le32 period_size_max;
210  __le32 buffer_size_min;
211  __le32 buffer_size_max;
212} __attribute__((packed));
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214struct snd_soc_tplg_stream {
215  __le32 size;
216  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
217  __le64 format;
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  __le32 rate;
220  __le32 period_bytes;
221  __le32 buffer_bytes;
222  __le32 channels;
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224} __attribute__((packed));
225struct snd_soc_tplg_manifest {
226  __le32 size;
227  __le32 control_elems;
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  __le32 widget_elems;
230  __le32 graph_elems;
231  __le32 pcm_elems;
232  __le32 dai_link_elems;
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  struct snd_soc_tplg_private priv;
235} __attribute__((packed));
236struct snd_soc_tplg_mixer_control {
237  struct snd_soc_tplg_ctl_hdr hdr;
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239  __le32 size;
240  __le32 min;
241  __le32 max;
242  __le32 platform_max;
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244  __le32 invert;
245  __le32 num_channels;
246  struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
247  struct snd_soc_tplg_private priv;
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249} __attribute__((packed));
250struct snd_soc_tplg_enum_control {
251  struct snd_soc_tplg_ctl_hdr hdr;
252  __le32 size;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  __le32 num_channels;
255  struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
256  __le32 items;
257  __le32 mask;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  __le32 count;
260  char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
261  __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
262  struct snd_soc_tplg_private priv;
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264} __attribute__((packed));
265struct snd_soc_tplg_bytes_control {
266  struct snd_soc_tplg_ctl_hdr hdr;
267  __le32 size;
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  __le32 max;
270  __le32 mask;
271  __le32 base;
272  __le32 num_regs;
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274  struct snd_soc_tplg_io_ops ext_ops;
275  struct snd_soc_tplg_private priv;
276} __attribute__((packed));
277struct snd_soc_tplg_dapm_graph_elem {
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
280  char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
281  char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
282} __attribute__((packed));
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284struct snd_soc_tplg_dapm_widget {
285  __le32 size;
286  __le32 id;
287  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289  char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
290  __le32 reg;
291  __le32 shift;
292  __le32 mask;
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294  __le32 subseq;
295  __le32 invert;
296  __le32 ignore_suspend;
297  __le16 event_flags;
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  __le16 event_type;
300  __le32 num_kcontrols;
301  struct snd_soc_tplg_private priv;
302} __attribute__((packed));
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304struct snd_soc_tplg_pcm {
305  __le32 size;
306  char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
307  char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309  __le32 pcm_id;
310  __le32 dai_id;
311  __le32 playback;
312  __le32 capture;
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  __le32 compress;
315  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
316  __le32 num_streams;
317  struct snd_soc_tplg_stream_caps caps[2];
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319} __attribute__((packed));
320struct snd_soc_tplg_link_config {
321  __le32 size;
322  __le32 id;
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
325  __le32 num_streams;
326} __attribute__((packed));
327#endif
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329