122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef __LINUX_UAPI_SND_ASOC_H 722851890Sopenharmony_ci#define __LINUX_UAPI_SND_ASOC_H 822851890Sopenharmony_ci#include <linux/types.h> 922851890Sopenharmony_ci#include <sound/asound.h> 1022851890Sopenharmony_ci#define SND_SOC_TPLG_MAX_CHAN 8 1122851890Sopenharmony_ci#define SND_SOC_TPLG_MAX_FORMATS 16 1222851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_CONFIG_MAX 8 1322851890Sopenharmony_ci#define SND_SOC_TPLG_HW_CONFIG_MAX 8 1422851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW 1 1522851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW_SX 2 1622851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3 1722851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_ENUM 4 1822851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_BYTES 5 1922851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_ENUM_VALUE 6 2022851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_RANGE 7 2122851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_STROBE 8 2222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_VOLSW 64 2322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65 2422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66 2522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67 2622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_PIN 68 2722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_INPUT 0 2822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_OUTPUT 1 2922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_MUX 2 3022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_MIXER 3 3122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_PGA 4 3222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_OUT_DRV 5 3322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ADC 6 3422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAC 7 3522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SWITCH 8 3622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_PRE 9 3722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_POST 10 3822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_AIF_IN 11 3922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_AIF_OUT 12 4022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_IN 13 4122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_OUT 14 4222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_LINK 15 4322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_BUFFER 16 4422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SCHEDULER 17 4522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_EFFECT 18 4622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SIGGEN 19 4722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SRC 20 4822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ASRC 21 4922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ENCODER 22 5022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DECODER 23 5122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER 5222851890Sopenharmony_ci#define SND_SOC_TPLG_MAGIC 0x41536F43 5322851890Sopenharmony_ci#define SND_SOC_TPLG_NUM_TEXTS 16 5422851890Sopenharmony_ci#define SND_SOC_TPLG_ABI_VERSION 0x5 5522851890Sopenharmony_ci#define SND_SOC_TPLG_ABI_VERSION_MIN 0x4 5622851890Sopenharmony_ci#define SND_SOC_TPLG_TLV_SIZE 32 5722851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MIXER 1 5822851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_BYTES 2 5922851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_ENUM 3 6022851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4 6122851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5 6222851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAI_LINK 6 6322851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_PCM 7 6422851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MANIFEST 8 6522851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_CODEC_LINK 9 6622851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10 6722851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_PDATA 11 6822851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAI 12 6922851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI 7022851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000 7122851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001 7222851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002 7322851890Sopenharmony_ci#define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003 7422851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_PLAYBACK 0 7522851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_CAPTURE 1 7622851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_UUID 0 7722851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_STRING 1 7822851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_BOOL 2 7922851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_BYTE 3 8022851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_WORD 4 8122851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5 8222851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0) 8322851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) 8422851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) 8522851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0 8622851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1 8722851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2 8822851890Sopenharmony_ci#define SND_SOC_TPLG_MCLK_CO 0 8922851890Sopenharmony_ci#define SND_SOC_TPLG_MCLK_CI 1 9022851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_I2S 1 9122851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_RIGHT_J 2 9222851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_LEFT_J 3 9322851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_DSP_A 4 9422851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_DSP_B 5 9522851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_AC97 6 9622851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_PDM 7 9722851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_MSB SND_SOC_DAI_FORMAT_LEFT_J 9822851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_LSB SND_SOC_DAI_FORMAT_RIGHT_J 9922851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES (1 << 0) 10022851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) 10122851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) 10222851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3) 10322851890Sopenharmony_ci#define SND_SOC_TPLG_BCLK_CM 0 10422851890Sopenharmony_ci#define SND_SOC_TPLG_BCLK_CS 1 10522851890Sopenharmony_ci#define SND_SOC_TPLG_FSYNC_CM 0 10622851890Sopenharmony_ci#define SND_SOC_TPLG_FSYNC_CS 1 10722851890Sopenharmony_cistruct snd_soc_tplg_hdr { 10822851890Sopenharmony_ci __le32 magic; 10922851890Sopenharmony_ci __le32 abi; 11022851890Sopenharmony_ci __le32 version; 11122851890Sopenharmony_ci __le32 type; 11222851890Sopenharmony_ci __le32 size; 11322851890Sopenharmony_ci __le32 vendor_type; 11422851890Sopenharmony_ci __le32 payload_size; 11522851890Sopenharmony_ci __le32 index; 11622851890Sopenharmony_ci __le32 count; 11722851890Sopenharmony_ci} __attribute__((packed)); 11822851890Sopenharmony_cistruct snd_soc_tplg_vendor_uuid_elem { 11922851890Sopenharmony_ci __le32 token; 12022851890Sopenharmony_ci char uuid[16]; 12122851890Sopenharmony_ci} __attribute__((packed)); 12222851890Sopenharmony_cistruct snd_soc_tplg_vendor_value_elem { 12322851890Sopenharmony_ci __le32 token; 12422851890Sopenharmony_ci __le32 value; 12522851890Sopenharmony_ci} __attribute__((packed)); 12622851890Sopenharmony_cistruct snd_soc_tplg_vendor_string_elem { 12722851890Sopenharmony_ci __le32 token; 12822851890Sopenharmony_ci char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 12922851890Sopenharmony_ci} __attribute__((packed)); 13022851890Sopenharmony_cistruct snd_soc_tplg_vendor_array { 13122851890Sopenharmony_ci __le32 size; 13222851890Sopenharmony_ci __le32 type; 13322851890Sopenharmony_ci __le32 num_elems; 13422851890Sopenharmony_ci union { 13522851890Sopenharmony_ci struct snd_soc_tplg_vendor_uuid_elem uuid[0]; 13622851890Sopenharmony_ci struct snd_soc_tplg_vendor_value_elem value[0]; 13722851890Sopenharmony_ci struct snd_soc_tplg_vendor_string_elem string[0]; 13822851890Sopenharmony_ci }; 13922851890Sopenharmony_ci} __attribute__((packed)); 14022851890Sopenharmony_cistruct snd_soc_tplg_private { 14122851890Sopenharmony_ci __le32 size; 14222851890Sopenharmony_ci union { 14322851890Sopenharmony_ci char data[0]; 14422851890Sopenharmony_ci struct snd_soc_tplg_vendor_array array[0]; 14522851890Sopenharmony_ci }; 14622851890Sopenharmony_ci} __attribute__((packed)); 14722851890Sopenharmony_cistruct snd_soc_tplg_tlv_dbscale { 14822851890Sopenharmony_ci __le32 min; 14922851890Sopenharmony_ci __le32 step; 15022851890Sopenharmony_ci __le32 mute; 15122851890Sopenharmony_ci} __attribute__((packed)); 15222851890Sopenharmony_cistruct snd_soc_tplg_ctl_tlv { 15322851890Sopenharmony_ci __le32 size; 15422851890Sopenharmony_ci __le32 type; 15522851890Sopenharmony_ci union { 15622851890Sopenharmony_ci __le32 data[SND_SOC_TPLG_TLV_SIZE]; 15722851890Sopenharmony_ci struct snd_soc_tplg_tlv_dbscale scale; 15822851890Sopenharmony_ci }; 15922851890Sopenharmony_ci} __attribute__((packed)); 16022851890Sopenharmony_cistruct snd_soc_tplg_channel { 16122851890Sopenharmony_ci __le32 size; 16222851890Sopenharmony_ci __le32 reg; 16322851890Sopenharmony_ci __le32 shift; 16422851890Sopenharmony_ci __le32 id; 16522851890Sopenharmony_ci} __attribute__((packed)); 16622851890Sopenharmony_cistruct snd_soc_tplg_io_ops { 16722851890Sopenharmony_ci __le32 get; 16822851890Sopenharmony_ci __le32 put; 16922851890Sopenharmony_ci __le32 info; 17022851890Sopenharmony_ci} __attribute__((packed)); 17122851890Sopenharmony_cistruct snd_soc_tplg_ctl_hdr { 17222851890Sopenharmony_ci __le32 size; 17322851890Sopenharmony_ci __le32 type; 17422851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 17522851890Sopenharmony_ci __le32 access; 17622851890Sopenharmony_ci struct snd_soc_tplg_io_ops ops; 17722851890Sopenharmony_ci struct snd_soc_tplg_ctl_tlv tlv; 17822851890Sopenharmony_ci} __attribute__((packed)); 17922851890Sopenharmony_cistruct snd_soc_tplg_stream_caps { 18022851890Sopenharmony_ci __le32 size; 18122851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 18222851890Sopenharmony_ci __le64 formats; 18322851890Sopenharmony_ci __le32 rates; 18422851890Sopenharmony_ci __le32 rate_min; 18522851890Sopenharmony_ci __le32 rate_max; 18622851890Sopenharmony_ci __le32 channels_min; 18722851890Sopenharmony_ci __le32 channels_max; 18822851890Sopenharmony_ci __le32 periods_min; 18922851890Sopenharmony_ci __le32 periods_max; 19022851890Sopenharmony_ci __le32 period_size_min; 19122851890Sopenharmony_ci __le32 period_size_max; 19222851890Sopenharmony_ci __le32 buffer_size_min; 19322851890Sopenharmony_ci __le32 buffer_size_max; 19422851890Sopenharmony_ci __le32 sig_bits; 19522851890Sopenharmony_ci} __attribute__((packed)); 19622851890Sopenharmony_cistruct snd_soc_tplg_stream { 19722851890Sopenharmony_ci __le32 size; 19822851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 19922851890Sopenharmony_ci __le64 format; 20022851890Sopenharmony_ci __le32 rate; 20122851890Sopenharmony_ci __le32 period_bytes; 20222851890Sopenharmony_ci __le32 buffer_bytes; 20322851890Sopenharmony_ci __le32 channels; 20422851890Sopenharmony_ci} __attribute__((packed)); 20522851890Sopenharmony_cistruct snd_soc_tplg_hw_config { 20622851890Sopenharmony_ci __le32 size; 20722851890Sopenharmony_ci __le32 id; 20822851890Sopenharmony_ci __le32 fmt; 20922851890Sopenharmony_ci __u8 clock_gated; 21022851890Sopenharmony_ci __u8 invert_bclk; 21122851890Sopenharmony_ci __u8 invert_fsync; 21222851890Sopenharmony_ci __u8 bclk_master; 21322851890Sopenharmony_ci __u8 fsync_master; 21422851890Sopenharmony_ci __u8 mclk_direction; 21522851890Sopenharmony_ci __le16 reserved; 21622851890Sopenharmony_ci __le32 mclk_rate; 21722851890Sopenharmony_ci __le32 bclk_rate; 21822851890Sopenharmony_ci __le32 fsync_rate; 21922851890Sopenharmony_ci __le32 tdm_slots; 22022851890Sopenharmony_ci __le32 tdm_slot_width; 22122851890Sopenharmony_ci __le32 tx_slots; 22222851890Sopenharmony_ci __le32 rx_slots; 22322851890Sopenharmony_ci __le32 tx_channels; 22422851890Sopenharmony_ci __le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN]; 22522851890Sopenharmony_ci __le32 rx_channels; 22622851890Sopenharmony_ci __le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN]; 22722851890Sopenharmony_ci} __attribute__((packed)); 22822851890Sopenharmony_cistruct snd_soc_tplg_manifest { 22922851890Sopenharmony_ci __le32 size; 23022851890Sopenharmony_ci __le32 control_elems; 23122851890Sopenharmony_ci __le32 widget_elems; 23222851890Sopenharmony_ci __le32 graph_elems; 23322851890Sopenharmony_ci __le32 pcm_elems; 23422851890Sopenharmony_ci __le32 dai_link_elems; 23522851890Sopenharmony_ci __le32 dai_elems; 23622851890Sopenharmony_ci __le32 reserved[20]; 23722851890Sopenharmony_ci struct snd_soc_tplg_private priv; 23822851890Sopenharmony_ci} __attribute__((packed)); 23922851890Sopenharmony_cistruct snd_soc_tplg_mixer_control { 24022851890Sopenharmony_ci struct snd_soc_tplg_ctl_hdr hdr; 24122851890Sopenharmony_ci __le32 size; 24222851890Sopenharmony_ci __le32 min; 24322851890Sopenharmony_ci __le32 max; 24422851890Sopenharmony_ci __le32 platform_max; 24522851890Sopenharmony_ci __le32 invert; 24622851890Sopenharmony_ci __le32 num_channels; 24722851890Sopenharmony_ci struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN]; 24822851890Sopenharmony_ci struct snd_soc_tplg_private priv; 24922851890Sopenharmony_ci} __attribute__((packed)); 25022851890Sopenharmony_cistruct snd_soc_tplg_enum_control { 25122851890Sopenharmony_ci struct snd_soc_tplg_ctl_hdr hdr; 25222851890Sopenharmony_ci __le32 size; 25322851890Sopenharmony_ci __le32 num_channels; 25422851890Sopenharmony_ci struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN]; 25522851890Sopenharmony_ci __le32 items; 25622851890Sopenharmony_ci __le32 mask; 25722851890Sopenharmony_ci __le32 count; 25822851890Sopenharmony_ci char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 25922851890Sopenharmony_ci __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4]; 26022851890Sopenharmony_ci struct snd_soc_tplg_private priv; 26122851890Sopenharmony_ci} __attribute__((packed)); 26222851890Sopenharmony_cistruct snd_soc_tplg_bytes_control { 26322851890Sopenharmony_ci struct snd_soc_tplg_ctl_hdr hdr; 26422851890Sopenharmony_ci __le32 size; 26522851890Sopenharmony_ci __le32 max; 26622851890Sopenharmony_ci __le32 mask; 26722851890Sopenharmony_ci __le32 base; 26822851890Sopenharmony_ci __le32 num_regs; 26922851890Sopenharmony_ci struct snd_soc_tplg_io_ops ext_ops; 27022851890Sopenharmony_ci struct snd_soc_tplg_private priv; 27122851890Sopenharmony_ci} __attribute__((packed)); 27222851890Sopenharmony_cistruct snd_soc_tplg_dapm_graph_elem { 27322851890Sopenharmony_ci char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 27422851890Sopenharmony_ci char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 27522851890Sopenharmony_ci char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 27622851890Sopenharmony_ci} __attribute__((packed)); 27722851890Sopenharmony_cistruct snd_soc_tplg_dapm_widget { 27822851890Sopenharmony_ci __le32 size; 27922851890Sopenharmony_ci __le32 id; 28022851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 28122851890Sopenharmony_ci char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 28222851890Sopenharmony_ci __le32 reg; 28322851890Sopenharmony_ci __le32 shift; 28422851890Sopenharmony_ci __le32 mask; 28522851890Sopenharmony_ci __le32 subseq; 28622851890Sopenharmony_ci __le32 invert; 28722851890Sopenharmony_ci __le32 ignore_suspend; 28822851890Sopenharmony_ci __le16 event_flags; 28922851890Sopenharmony_ci __le16 event_type; 29022851890Sopenharmony_ci __le32 num_kcontrols; 29122851890Sopenharmony_ci struct snd_soc_tplg_private priv; 29222851890Sopenharmony_ci 29322851890Sopenharmony_ci} __attribute__((packed)); 29422851890Sopenharmony_cistruct snd_soc_tplg_pcm { 29522851890Sopenharmony_ci __le32 size; 29622851890Sopenharmony_ci char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 29722851890Sopenharmony_ci char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 29822851890Sopenharmony_ci __le32 pcm_id; 29922851890Sopenharmony_ci __le32 dai_id; 30022851890Sopenharmony_ci __le32 playback; 30122851890Sopenharmony_ci __le32 capture; 30222851890Sopenharmony_ci __le32 compress; 30322851890Sopenharmony_ci struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; 30422851890Sopenharmony_ci __le32 num_streams; 30522851890Sopenharmony_ci struct snd_soc_tplg_stream_caps caps[2]; 30622851890Sopenharmony_ci __le32 flag_mask; 30722851890Sopenharmony_ci __le32 flags; 30822851890Sopenharmony_ci struct snd_soc_tplg_private priv; 30922851890Sopenharmony_ci} __attribute__((packed)); 31022851890Sopenharmony_cistruct snd_soc_tplg_link_config { 31122851890Sopenharmony_ci __le32 size; 31222851890Sopenharmony_ci __le32 id; 31322851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 31422851890Sopenharmony_ci char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 31522851890Sopenharmony_ci struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; 31622851890Sopenharmony_ci __le32 num_streams; 31722851890Sopenharmony_ci struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX]; 31822851890Sopenharmony_ci __le32 num_hw_configs; 31922851890Sopenharmony_ci __le32 default_hw_config_id; 32022851890Sopenharmony_ci __le32 flag_mask; 32122851890Sopenharmony_ci __le32 flags; 32222851890Sopenharmony_ci struct snd_soc_tplg_private priv; 32322851890Sopenharmony_ci} __attribute__((packed)); 32422851890Sopenharmony_cistruct snd_soc_tplg_dai { 32522851890Sopenharmony_ci __le32 size; 32622851890Sopenharmony_ci char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 32722851890Sopenharmony_ci __le32 dai_id; 32822851890Sopenharmony_ci __le32 playback; 32922851890Sopenharmony_ci __le32 capture; 33022851890Sopenharmony_ci struct snd_soc_tplg_stream_caps caps[2]; 33122851890Sopenharmony_ci __le32 flag_mask; 33222851890Sopenharmony_ci __le32 flags; 33322851890Sopenharmony_ci struct snd_soc_tplg_private priv; 33422851890Sopenharmony_ci} __attribute__((packed)); 33522851890Sopenharmony_cistruct snd_soc_tplg_manifest_v4 { 33622851890Sopenharmony_ci __le32 size; 33722851890Sopenharmony_ci __le32 control_elems; 33822851890Sopenharmony_ci __le32 widget_elems; 33922851890Sopenharmony_ci __le32 graph_elems; 34022851890Sopenharmony_ci __le32 pcm_elems; 34122851890Sopenharmony_ci __le32 dai_link_elems; 34222851890Sopenharmony_ci struct snd_soc_tplg_private priv; 34322851890Sopenharmony_ci} __packed; 34422851890Sopenharmony_cistruct snd_soc_tplg_stream_caps_v4 { 34522851890Sopenharmony_ci __le32 size; 34622851890Sopenharmony_ci char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 34722851890Sopenharmony_ci __le64 formats; 34822851890Sopenharmony_ci __le32 rates; 34922851890Sopenharmony_ci __le32 rate_min; 35022851890Sopenharmony_ci __le32 rate_max; 35122851890Sopenharmony_ci __le32 channels_min; 35222851890Sopenharmony_ci __le32 channels_max; 35322851890Sopenharmony_ci __le32 periods_min; 35422851890Sopenharmony_ci __le32 periods_max; 35522851890Sopenharmony_ci __le32 period_size_min; 35622851890Sopenharmony_ci __le32 period_size_max; 35722851890Sopenharmony_ci __le32 buffer_size_min; 35822851890Sopenharmony_ci __le32 buffer_size_max; 35922851890Sopenharmony_ci} __packed; 36022851890Sopenharmony_cistruct snd_soc_tplg_pcm_v4 { 36122851890Sopenharmony_ci __le32 size; 36222851890Sopenharmony_ci char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 36322851890Sopenharmony_ci char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; 36422851890Sopenharmony_ci __le32 pcm_id; 36522851890Sopenharmony_ci __le32 dai_id; 36622851890Sopenharmony_ci __le32 playback; 36722851890Sopenharmony_ci __le32 capture; 36822851890Sopenharmony_ci __le32 compress; 36922851890Sopenharmony_ci struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; 37022851890Sopenharmony_ci __le32 num_streams; 37122851890Sopenharmony_ci struct snd_soc_tplg_stream_caps_v4 caps[2]; 37222851890Sopenharmony_ci} __packed; 37322851890Sopenharmony_cistruct snd_soc_tplg_link_config_v4 { 37422851890Sopenharmony_ci __le32 size; 37522851890Sopenharmony_ci __le32 id; 37622851890Sopenharmony_ci struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; 37722851890Sopenharmony_ci __le32 num_streams; 37822851890Sopenharmony_ci} __packed; 37922851890Sopenharmony_ci#endif 380