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