Home | History | Annotate | Download | only in sound
      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_HW_CONFIG_MAX 8
     28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     29 #define SND_SOC_TPLG_CTL_VOLSW 1
     30 #define SND_SOC_TPLG_CTL_VOLSW_SX 2
     31 #define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3
     32 #define SND_SOC_TPLG_CTL_ENUM 4
     33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     34 #define SND_SOC_TPLG_CTL_BYTES 5
     35 #define SND_SOC_TPLG_CTL_ENUM_VALUE 6
     36 #define SND_SOC_TPLG_CTL_RANGE 7
     37 #define SND_SOC_TPLG_CTL_STROBE 8
     38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     39 #define SND_SOC_TPLG_DAPM_CTL_VOLSW 64
     40 #define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65
     41 #define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66
     42 #define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67
     43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     44 #define SND_SOC_TPLG_DAPM_CTL_PIN 68
     45 #define SND_SOC_TPLG_DAPM_INPUT 0
     46 #define SND_SOC_TPLG_DAPM_OUTPUT 1
     47 #define SND_SOC_TPLG_DAPM_MUX 2
     48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     49 #define SND_SOC_TPLG_DAPM_MIXER 3
     50 #define SND_SOC_TPLG_DAPM_PGA 4
     51 #define SND_SOC_TPLG_DAPM_OUT_DRV 5
     52 #define SND_SOC_TPLG_DAPM_ADC 6
     53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     54 #define SND_SOC_TPLG_DAPM_DAC 7
     55 #define SND_SOC_TPLG_DAPM_SWITCH 8
     56 #define SND_SOC_TPLG_DAPM_PRE 9
     57 #define SND_SOC_TPLG_DAPM_POST 10
     58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     59 #define SND_SOC_TPLG_DAPM_AIF_IN 11
     60 #define SND_SOC_TPLG_DAPM_AIF_OUT 12
     61 #define SND_SOC_TPLG_DAPM_DAI_IN 13
     62 #define SND_SOC_TPLG_DAPM_DAI_OUT 14
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64 #define SND_SOC_TPLG_DAPM_DAI_LINK 15
     65 #define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK
     66 #define SND_SOC_TPLG_MAGIC 0x41536F43
     67 #define SND_SOC_TPLG_NUM_TEXTS 16
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69 #define SND_SOC_TPLG_ABI_VERSION 0x5
     70 #define SND_SOC_TPLG_ABI_VERSION_MIN 0x4
     71 #define SND_SOC_TPLG_TLV_SIZE 32
     72 #define SND_SOC_TPLG_TYPE_MIXER 1
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74 #define SND_SOC_TPLG_TYPE_BYTES 2
     75 #define SND_SOC_TPLG_TYPE_ENUM 3
     76 #define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4
     77 #define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79 #define SND_SOC_TPLG_TYPE_DAI_LINK 6
     80 #define SND_SOC_TPLG_TYPE_PCM 7
     81 #define SND_SOC_TPLG_TYPE_MANIFEST 8
     82 #define SND_SOC_TPLG_TYPE_CODEC_LINK 9
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84 #define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
     85 #define SND_SOC_TPLG_TYPE_PDATA 11
     86 #define SND_SOC_TPLG_TYPE_DAI 12
     87 #define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI
     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 */
    104 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0)
    105 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
    106 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
    107 #define SND_SOC_DAI_FORMAT_I2S 1
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109 #define SND_SOC_DAI_FORMAT_RIGHT_J 2
    110 #define SND_SOC_DAI_FORMAT_LEFT_J 3
    111 #define SND_SOC_DAI_FORMAT_DSP_A 4
    112 #define SND_SOC_DAI_FORMAT_DSP_B 5
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114 #define SND_SOC_DAI_FORMAT_AC97 6
    115 #define SND_SOC_DAI_FORMAT_PDM 7
    116 #define SND_SOC_DAI_FORMAT_MSB SND_SOC_DAI_FORMAT_LEFT_J
    117 #define SND_SOC_DAI_FORMAT_LSB SND_SOC_DAI_FORMAT_RIGHT_J
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119 #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES (1 << 0)
    120 #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
    121 #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
    122 #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124 struct snd_soc_tplg_hdr {
    125   __le32 magic;
    126   __le32 abi;
    127   __le32 version;
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129   __le32 type;
    130   __le32 size;
    131   __le32 vendor_type;
    132   __le32 payload_size;
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134   __le32 index;
    135   __le32 count;
    136 } __attribute__((packed));
    137 struct snd_soc_tplg_vendor_uuid_elem {
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139   __le32 token;
    140   char uuid[16];
    141 } __attribute__((packed));
    142 struct snd_soc_tplg_vendor_value_elem {
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144   __le32 token;
    145   __le32 value;
    146 } __attribute__((packed));
    147 struct snd_soc_tplg_vendor_string_elem {
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149   __le32 token;
    150   char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    151 } __attribute__((packed));
    152 struct snd_soc_tplg_vendor_array {
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154   __le32 size;
    155   __le32 type;
    156   __le32 num_elems;
    157   union {
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159     struct snd_soc_tplg_vendor_uuid_elem uuid[0];
    160     struct snd_soc_tplg_vendor_value_elem value[0];
    161     struct snd_soc_tplg_vendor_string_elem string[0];
    162   };
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164 } __attribute__((packed));
    165 struct snd_soc_tplg_private {
    166   __le32 size;
    167   union {
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169     char data[0];
    170     struct snd_soc_tplg_vendor_array array[0];
    171   };
    172 } __attribute__((packed));
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174 struct snd_soc_tplg_tlv_dbscale {
    175   __le32 min;
    176   __le32 step;
    177   __le32 mute;
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179 } __attribute__((packed));
    180 struct snd_soc_tplg_ctl_tlv {
    181   __le32 size;
    182   __le32 type;
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184   union {
    185     __le32 data[SND_SOC_TPLG_TLV_SIZE];
    186     struct snd_soc_tplg_tlv_dbscale scale;
    187   };
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189 } __attribute__((packed));
    190 struct snd_soc_tplg_channel {
    191   __le32 size;
    192   __le32 reg;
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194   __le32 shift;
    195   __le32 id;
    196 } __attribute__((packed));
    197 struct snd_soc_tplg_io_ops {
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199   __le32 get;
    200   __le32 put;
    201   __le32 info;
    202 } __attribute__((packed));
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204 struct snd_soc_tplg_ctl_hdr {
    205   __le32 size;
    206   __le32 type;
    207   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    209   __le32 access;
    210   struct snd_soc_tplg_io_ops ops;
    211   struct snd_soc_tplg_ctl_tlv tlv;
    212 } __attribute__((packed));
    213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    214 struct snd_soc_tplg_stream_caps {
    215   __le32 size;
    216   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    217   __le64 formats;
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219   __le32 rates;
    220   __le32 rate_min;
    221   __le32 rate_max;
    222   __le32 channels_min;
    223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    224   __le32 channels_max;
    225   __le32 periods_min;
    226   __le32 periods_max;
    227   __le32 period_size_min;
    228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    229   __le32 period_size_max;
    230   __le32 buffer_size_min;
    231   __le32 buffer_size_max;
    232   __le32 sig_bits;
    233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    234 } __attribute__((packed));
    235 struct snd_soc_tplg_stream {
    236   __le32 size;
    237   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    239   __le64 format;
    240   __le32 rate;
    241   __le32 period_bytes;
    242   __le32 buffer_bytes;
    243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    244   __le32 channels;
    245 } __attribute__((packed));
    246 struct snd_soc_tplg_hw_config {
    247   __le32 size;
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249   __le32 id;
    250   __le32 fmt;
    251   __u8 clock_gated;
    252   __u8 invert_bclk;
    253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    254   __u8 invert_fsync;
    255   __u8 bclk_master;
    256   __u8 fsync_master;
    257   __u8 mclk_direction;
    258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    259   __le16 reserved;
    260   __le32 mclk_rate;
    261   __le32 bclk_rate;
    262   __le32 fsync_rate;
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264   __le32 tdm_slots;
    265   __le32 tdm_slot_width;
    266   __le32 tx_slots;
    267   __le32 rx_slots;
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269   __le32 tx_channels;
    270   __le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN];
    271   __le32 rx_channels;
    272   __le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN];
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274 } __attribute__((packed));
    275 struct snd_soc_tplg_manifest {
    276   __le32 size;
    277   __le32 control_elems;
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279   __le32 widget_elems;
    280   __le32 graph_elems;
    281   __le32 pcm_elems;
    282   __le32 dai_link_elems;
    283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    284   __le32 dai_elems;
    285   __le32 reserved[20];
    286   struct snd_soc_tplg_private priv;
    287 } __attribute__((packed));
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289 struct snd_soc_tplg_mixer_control {
    290   struct snd_soc_tplg_ctl_hdr hdr;
    291   __le32 size;
    292   __le32 min;
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294   __le32 max;
    295   __le32 platform_max;
    296   __le32 invert;
    297   __le32 num_channels;
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299   struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
    300   struct snd_soc_tplg_private priv;
    301 } __attribute__((packed));
    302 struct snd_soc_tplg_enum_control {
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304   struct snd_soc_tplg_ctl_hdr hdr;
    305   __le32 size;
    306   __le32 num_channels;
    307   struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309   __le32 items;
    310   __le32 mask;
    311   __le32 count;
    312   char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    314   __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
    315   struct snd_soc_tplg_private priv;
    316 } __attribute__((packed));
    317 struct snd_soc_tplg_bytes_control {
    318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    319   struct snd_soc_tplg_ctl_hdr hdr;
    320   __le32 size;
    321   __le32 max;
    322   __le32 mask;
    323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    324   __le32 base;
    325   __le32 num_regs;
    326   struct snd_soc_tplg_io_ops ext_ops;
    327   struct snd_soc_tplg_private priv;
    328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    329 } __attribute__((packed));
    330 struct snd_soc_tplg_dapm_graph_elem {
    331   char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    332   char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    334   char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    335 } __attribute__((packed));
    336 struct snd_soc_tplg_dapm_widget {
    337   __le32 size;
    338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    339   __le32 id;
    340   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    341   char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    342   __le32 reg;
    343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    344   __le32 shift;
    345   __le32 mask;
    346   __le32 subseq;
    347   __le32 invert;
    348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    349   __le32 ignore_suspend;
    350   __le16 event_flags;
    351   __le16 event_type;
    352   __le32 num_kcontrols;
    353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    354   struct snd_soc_tplg_private priv;
    355 } __attribute__((packed));
    356 struct snd_soc_tplg_pcm {
    357   __le32 size;
    358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    359   char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    360   char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    361   __le32 pcm_id;
    362   __le32 dai_id;
    363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    364   __le32 playback;
    365   __le32 capture;
    366   __le32 compress;
    367   struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
    368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    369   __le32 num_streams;
    370   struct snd_soc_tplg_stream_caps caps[2];
    371   __le32 flag_mask;
    372   __le32 flags;
    373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    374   struct snd_soc_tplg_private priv;
    375 } __attribute__((packed));
    376 struct snd_soc_tplg_link_config {
    377   __le32 size;
    378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    379   __le32 id;
    380   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    381   char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    382   struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
    383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    384   __le32 num_streams;
    385   struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX];
    386   __le32 num_hw_configs;
    387   __le32 default_hw_config_id;
    388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    389   __le32 flag_mask;
    390   __le32 flags;
    391   struct snd_soc_tplg_private priv;
    392 } __attribute__((packed));
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394 struct snd_soc_tplg_dai {
    395   __le32 size;
    396   char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    397   __le32 dai_id;
    398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    399   __le32 playback;
    400   __le32 capture;
    401   struct snd_soc_tplg_stream_caps caps[2];
    402   __le32 flag_mask;
    403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    404   __le32 flags;
    405   struct snd_soc_tplg_private priv;
    406 } __attribute__((packed));
    407 #endif
    408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    409