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