| Elliott Hughes | 180edef | 2023-11-02 00:08:05 +0000 | [diff] [blame] | 1 | /* | 
 | 2 |  * This file is auto-generated. Modifications will be lost. | 
 | 3 |  * | 
 | 4 |  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ | 
 | 5 |  * for more information. | 
 | 6 |  */ | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 7 | #ifndef __LINUX_UAPI_SND_ASOC_H | 
 | 8 | #define __LINUX_UAPI_SND_ASOC_H | 
 | 9 | #include <linux/types.h> | 
| Christopher Ferris | af09c70 | 2020-06-01 20:29:29 -0700 | [diff] [blame] | 10 | #include <sound/asound.h> | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 11 | #define SND_SOC_TPLG_MAX_CHAN 8 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 12 | #define SND_SOC_TPLG_MAX_FORMATS 16 | 
 | 13 | #define SND_SOC_TPLG_STREAM_CONFIG_MAX 8 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 14 | #define SND_SOC_TPLG_HW_CONFIG_MAX 8 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 15 | #define SND_SOC_TPLG_CTL_VOLSW 1 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 16 | #define SND_SOC_TPLG_CTL_VOLSW_SX 2 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 17 | #define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3 | 
 | 18 | #define SND_SOC_TPLG_CTL_ENUM 4 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 19 | #define SND_SOC_TPLG_CTL_BYTES 5 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 20 | #define SND_SOC_TPLG_CTL_ENUM_VALUE 6 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 21 | #define SND_SOC_TPLG_CTL_RANGE 7 | 
 | 22 | #define SND_SOC_TPLG_CTL_STROBE 8 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 23 | #define SND_SOC_TPLG_DAPM_CTL_VOLSW 64 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 24 | #define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 25 | #define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66 | 
 | 26 | #define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 27 | #define SND_SOC_TPLG_DAPM_CTL_PIN 68 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 28 | #define SND_SOC_TPLG_DAPM_INPUT 0 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 29 | #define SND_SOC_TPLG_DAPM_OUTPUT 1 | 
 | 30 | #define SND_SOC_TPLG_DAPM_MUX 2 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 31 | #define SND_SOC_TPLG_DAPM_MIXER 3 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 32 | #define SND_SOC_TPLG_DAPM_PGA 4 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 33 | #define SND_SOC_TPLG_DAPM_OUT_DRV 5 | 
 | 34 | #define SND_SOC_TPLG_DAPM_ADC 6 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 35 | #define SND_SOC_TPLG_DAPM_DAC 7 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 36 | #define SND_SOC_TPLG_DAPM_SWITCH 8 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 37 | #define SND_SOC_TPLG_DAPM_PRE 9 | 
 | 38 | #define SND_SOC_TPLG_DAPM_POST 10 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 39 | #define SND_SOC_TPLG_DAPM_AIF_IN 11 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 40 | #define SND_SOC_TPLG_DAPM_AIF_OUT 12 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 41 | #define SND_SOC_TPLG_DAPM_DAI_IN 13 | 
 | 42 | #define SND_SOC_TPLG_DAPM_DAI_OUT 14 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 43 | #define SND_SOC_TPLG_DAPM_DAI_LINK 15 | 
| Christopher Ferris | 1308ad3 | 2017-11-14 17:32:13 -0800 | [diff] [blame] | 44 | #define SND_SOC_TPLG_DAPM_BUFFER 16 | 
 | 45 | #define SND_SOC_TPLG_DAPM_SCHEDULER 17 | 
 | 46 | #define SND_SOC_TPLG_DAPM_EFFECT 18 | 
 | 47 | #define SND_SOC_TPLG_DAPM_SIGGEN 19 | 
 | 48 | #define SND_SOC_TPLG_DAPM_SRC 20 | 
 | 49 | #define SND_SOC_TPLG_DAPM_ASRC 21 | 
 | 50 | #define SND_SOC_TPLG_DAPM_ENCODER 22 | 
 | 51 | #define SND_SOC_TPLG_DAPM_DECODER 23 | 
 | 52 | #define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 53 | #define SND_SOC_TPLG_MAGIC 0x41536F43 | 
 | 54 | #define SND_SOC_TPLG_NUM_TEXTS 16 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 55 | #define SND_SOC_TPLG_ABI_VERSION 0x5 | 
 | 56 | #define SND_SOC_TPLG_ABI_VERSION_MIN 0x4 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 57 | #define SND_SOC_TPLG_TLV_SIZE 32 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 58 | #define SND_SOC_TPLG_TYPE_MIXER 1 | 
 | 59 | #define SND_SOC_TPLG_TYPE_BYTES 2 | 
 | 60 | #define SND_SOC_TPLG_TYPE_ENUM 3 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 61 | #define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 62 | #define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5 | 
 | 63 | #define SND_SOC_TPLG_TYPE_DAI_LINK 6 | 
 | 64 | #define SND_SOC_TPLG_TYPE_PCM 7 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 65 | #define SND_SOC_TPLG_TYPE_MANIFEST 8 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 66 | #define SND_SOC_TPLG_TYPE_CODEC_LINK 9 | 
 | 67 | #define SND_SOC_TPLG_TYPE_BACKEND_LINK 10 | 
 | 68 | #define SND_SOC_TPLG_TYPE_PDATA 11 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 69 | #define SND_SOC_TPLG_TYPE_DAI 12 | 
 | 70 | #define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 71 | #define SND_SOC_TPLG_TYPE_VENDOR_FW 1000 | 
 | 72 | #define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001 | 
 | 73 | #define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002 | 
 | 74 | #define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003 | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 75 | #define SND_SOC_TPLG_STREAM_PLAYBACK 0 | 
 | 76 | #define SND_SOC_TPLG_STREAM_CAPTURE 1 | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 77 | #define SND_SOC_TPLG_TUPLE_TYPE_UUID 0 | 
 | 78 | #define SND_SOC_TPLG_TUPLE_TYPE_STRING 1 | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 79 | #define SND_SOC_TPLG_TUPLE_TYPE_BOOL 2 | 
 | 80 | #define SND_SOC_TPLG_TUPLE_TYPE_BYTE 3 | 
 | 81 | #define SND_SOC_TPLG_TUPLE_TYPE_WORD 4 | 
 | 82 | #define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5 | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 83 | #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0) | 
 | 84 | #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 85 | #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) | 
| Christopher Ferris | 9ce2884 | 2018-10-25 12:11:39 -0700 | [diff] [blame] | 86 | #define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0 | 
 | 87 | #define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1 | 
 | 88 | #define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2 | 
 | 89 | #define SND_SOC_TPLG_MCLK_CO 0 | 
 | 90 | #define SND_SOC_TPLG_MCLK_CI 1 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 91 | #define SND_SOC_DAI_FORMAT_I2S 1 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 92 | #define SND_SOC_DAI_FORMAT_RIGHT_J 2 | 
 | 93 | #define SND_SOC_DAI_FORMAT_LEFT_J 3 | 
 | 94 | #define SND_SOC_DAI_FORMAT_DSP_A 4 | 
 | 95 | #define SND_SOC_DAI_FORMAT_DSP_B 5 | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 96 | #define SND_SOC_DAI_FORMAT_AC97 6 | 
 | 97 | #define SND_SOC_DAI_FORMAT_PDM 7 | 
 | 98 | #define SND_SOC_DAI_FORMAT_MSB SND_SOC_DAI_FORMAT_LEFT_J | 
 | 99 | #define SND_SOC_DAI_FORMAT_LSB SND_SOC_DAI_FORMAT_RIGHT_J | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 100 | #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES (1 << 0) | 
 | 101 | #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) | 
 | 102 | #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) | 
 | 103 | #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3) | 
| Christopher Ferris | 05667cd | 2021-02-16 16:01:34 -0800 | [diff] [blame] | 104 | #define SND_SOC_TPLG_BCLK_CP 0 | 
 | 105 | #define SND_SOC_TPLG_BCLK_CC 1 | 
 | 106 | #define SND_SOC_TPLG_BCLK_CM SND_SOC_TPLG_BCLK_CP | 
 | 107 | #define SND_SOC_TPLG_BCLK_CS SND_SOC_TPLG_BCLK_CC | 
 | 108 | #define SND_SOC_TPLG_FSYNC_CP 0 | 
 | 109 | #define SND_SOC_TPLG_FSYNC_CC 1 | 
 | 110 | #define SND_SOC_TPLG_FSYNC_CM SND_SOC_TPLG_FSYNC_CP | 
 | 111 | #define SND_SOC_TPLG_FSYNC_CS SND_SOC_TPLG_FSYNC_CC | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 112 | struct snd_soc_tplg_hdr { | 
 | 113 |   __le32 magic; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 114 |   __le32 abi; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 115 |   __le32 version; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 116 |   __le32 type; | 
 | 117 |   __le32 size; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 118 |   __le32 vendor_type; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 119 |   __le32 payload_size; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 120 |   __le32 index; | 
 | 121 |   __le32 count; | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 122 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 123 | struct snd_soc_tplg_vendor_uuid_elem { | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 124 |   __le32 token; | 
 | 125 |   char uuid[16]; | 
 | 126 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 127 | struct snd_soc_tplg_vendor_value_elem { | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 128 |   __le32 token; | 
 | 129 |   __le32 value; | 
 | 130 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 131 | struct snd_soc_tplg_vendor_string_elem { | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 132 |   __le32 token; | 
 | 133 |   char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 134 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 135 | struct snd_soc_tplg_vendor_array { | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 136 |   __le32 size; | 
 | 137 |   __le32 type; | 
 | 138 |   __le32 num_elems; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 139 |   union { | 
| Christopher Ferris | 37c3f3c | 2023-07-10 10:59:05 -0700 | [diff] [blame] | 140 |     __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid); | 
 | 141 |     __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value); | 
 | 142 |     __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 143 |   }; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 144 | } __attribute__((packed)); | 
 | 145 | struct snd_soc_tplg_private { | 
 | 146 |   __le32 size; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 147 |   union { | 
| Christopher Ferris | a479261 | 2022-01-10 13:51:15 -0800 | [diff] [blame] | 148 |     __DECLARE_FLEX_ARRAY(char, data); | 
 | 149 |     __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array); | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 150 |   }; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 151 | } __attribute__((packed)); | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 152 | struct snd_soc_tplg_tlv_dbscale { | 
 | 153 |   __le32 min; | 
 | 154 |   __le32 step; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 155 |   __le32 mute; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 156 | } __attribute__((packed)); | 
 | 157 | struct snd_soc_tplg_ctl_tlv { | 
 | 158 |   __le32 size; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 159 |   __le32 type; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 160 |   union { | 
 | 161 |     __le32 data[SND_SOC_TPLG_TLV_SIZE]; | 
 | 162 |     struct snd_soc_tplg_tlv_dbscale scale; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 163 |   }; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 164 | } __attribute__((packed)); | 
 | 165 | struct snd_soc_tplg_channel { | 
 | 166 |   __le32 size; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 167 |   __le32 reg; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 168 |   __le32 shift; | 
 | 169 |   __le32 id; | 
 | 170 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 171 | struct snd_soc_tplg_io_ops { | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 172 |   __le32 get; | 
 | 173 |   __le32 put; | 
 | 174 |   __le32 info; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 175 | } __attribute__((packed)); | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 176 | struct snd_soc_tplg_ctl_hdr { | 
 | 177 |   __le32 size; | 
 | 178 |   __le32 type; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 179 |   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 180 |   __le32 access; | 
 | 181 |   struct snd_soc_tplg_io_ops ops; | 
 | 182 |   struct snd_soc_tplg_ctl_tlv tlv; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 183 | } __attribute__((packed)); | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 184 | struct snd_soc_tplg_stream_caps { | 
 | 185 |   __le32 size; | 
 | 186 |   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 187 |   __le64 formats; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 188 |   __le32 rates; | 
 | 189 |   __le32 rate_min; | 
 | 190 |   __le32 rate_max; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 191 |   __le32 channels_min; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 192 |   __le32 channels_max; | 
 | 193 |   __le32 periods_min; | 
 | 194 |   __le32 periods_max; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 195 |   __le32 period_size_min; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 196 |   __le32 period_size_max; | 
 | 197 |   __le32 buffer_size_min; | 
 | 198 |   __le32 buffer_size_max; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 199 |   __le32 sig_bits; | 
 | 200 | } __attribute__((packed)); | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 201 | struct snd_soc_tplg_stream { | 
 | 202 |   __le32 size; | 
 | 203 |   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 204 |   __le64 format; | 
 | 205 |   __le32 rate; | 
 | 206 |   __le32 period_bytes; | 
 | 207 |   __le32 buffer_bytes; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 208 |   __le32 channels; | 
 | 209 | } __attribute__((packed)); | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 210 | struct snd_soc_tplg_hw_config { | 
 | 211 |   __le32 size; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 212 |   __le32 id; | 
 | 213 |   __le32 fmt; | 
 | 214 |   __u8 clock_gated; | 
 | 215 |   __u8 invert_bclk; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 216 |   __u8 invert_fsync; | 
| Christopher Ferris | 05667cd | 2021-02-16 16:01:34 -0800 | [diff] [blame] | 217 |   __u8 bclk_provider; | 
 | 218 |   __u8 fsync_provider; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 219 |   __u8 mclk_direction; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 220 |   __le16 reserved; | 
 | 221 |   __le32 mclk_rate; | 
 | 222 |   __le32 bclk_rate; | 
 | 223 |   __le32 fsync_rate; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 224 |   __le32 tdm_slots; | 
 | 225 |   __le32 tdm_slot_width; | 
 | 226 |   __le32 tx_slots; | 
 | 227 |   __le32 rx_slots; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 228 |   __le32 tx_channels; | 
 | 229 |   __le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN]; | 
 | 230 |   __le32 rx_channels; | 
 | 231 |   __le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN]; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 232 | } __attribute__((packed)); | 
 | 233 | struct snd_soc_tplg_manifest { | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 234 |   __le32 size; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 235 |   __le32 control_elems; | 
 | 236 |   __le32 widget_elems; | 
 | 237 |   __le32 graph_elems; | 
| Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 238 |   __le32 pcm_elems; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 239 |   __le32 dai_link_elems; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 240 |   __le32 dai_elems; | 
 | 241 |   __le32 reserved[20]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 242 |   struct snd_soc_tplg_private priv; | 
 | 243 | } __attribute__((packed)); | 
 | 244 | struct snd_soc_tplg_mixer_control { | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 245 |   struct snd_soc_tplg_ctl_hdr hdr; | 
 | 246 |   __le32 size; | 
 | 247 |   __le32 min; | 
 | 248 |   __le32 max; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 249 |   __le32 platform_max; | 
 | 250 |   __le32 invert; | 
 | 251 |   __le32 num_channels; | 
 | 252 |   struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 253 |   struct snd_soc_tplg_private priv; | 
 | 254 | } __attribute__((packed)); | 
 | 255 | struct snd_soc_tplg_enum_control { | 
 | 256 |   struct snd_soc_tplg_ctl_hdr hdr; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 257 |   __le32 size; | 
 | 258 |   __le32 num_channels; | 
 | 259 |   struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN]; | 
 | 260 |   __le32 items; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 261 |   __le32 mask; | 
 | 262 |   __le32 count; | 
 | 263 |   char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 264 |   __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 265 |   struct snd_soc_tplg_private priv; | 
 | 266 | } __attribute__((packed)); | 
 | 267 | struct snd_soc_tplg_bytes_control { | 
 | 268 |   struct snd_soc_tplg_ctl_hdr hdr; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 269 |   __le32 size; | 
 | 270 |   __le32 max; | 
 | 271 |   __le32 mask; | 
 | 272 |   __le32 base; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 273 |   __le32 num_regs; | 
 | 274 |   struct snd_soc_tplg_io_ops ext_ops; | 
 | 275 |   struct snd_soc_tplg_private priv; | 
 | 276 | } __attribute__((packed)); | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 277 | struct snd_soc_tplg_dapm_graph_elem { | 
 | 278 |   char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 279 |   char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 280 |   char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 281 | } __attribute__((packed)); | 
 | 282 | struct snd_soc_tplg_dapm_widget { | 
 | 283 |   __le32 size; | 
 | 284 |   __le32 id; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 285 |   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 286 |   char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 287 |   __le32 reg; | 
 | 288 |   __le32 shift; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 289 |   __le32 mask; | 
 | 290 |   __le32 subseq; | 
 | 291 |   __le32 invert; | 
 | 292 |   __le32 ignore_suspend; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 293 |   __le16 event_flags; | 
 | 294 |   __le16 event_type; | 
 | 295 |   __le32 num_kcontrols; | 
 | 296 |   struct snd_soc_tplg_private priv; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 297 | } __attribute__((packed)); | 
 | 298 | struct snd_soc_tplg_pcm { | 
 | 299 |   __le32 size; | 
 | 300 |   char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 301 |   char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 302 |   __le32 pcm_id; | 
 | 303 |   __le32 dai_id; | 
 | 304 |   __le32 playback; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 305 |   __le32 capture; | 
 | 306 |   __le32 compress; | 
 | 307 |   struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; | 
 | 308 |   __le32 num_streams; | 
| Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 309 |   struct snd_soc_tplg_stream_caps caps[2]; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 310 |   __le32 flag_mask; | 
 | 311 |   __le32 flags; | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 312 |   struct snd_soc_tplg_private priv; | 
 | 313 | } __attribute__((packed)); | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 314 | struct snd_soc_tplg_link_config { | 
 | 315 |   __le32 size; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 316 |   __le32 id; | 
 | 317 |   char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 318 |   char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 319 |   struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 320 |   __le32 num_streams; | 
 | 321 |   struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX]; | 
 | 322 |   __le32 num_hw_configs; | 
 | 323 |   __le32 default_hw_config_id; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 324 |   __le32 flag_mask; | 
 | 325 |   __le32 flags; | 
 | 326 |   struct snd_soc_tplg_private priv; | 
 | 327 | } __attribute__((packed)); | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 328 | struct snd_soc_tplg_dai { | 
 | 329 |   __le32 size; | 
 | 330 |   char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | 
 | 331 |   __le32 dai_id; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 332 |   __le32 playback; | 
 | 333 |   __le32 capture; | 
 | 334 |   struct snd_soc_tplg_stream_caps caps[2]; | 
 | 335 |   __le32 flag_mask; | 
| Christopher Ferris | 48af7cb | 2017-02-21 12:35:09 -0800 | [diff] [blame] | 336 |   __le32 flags; | 
 | 337 |   struct snd_soc_tplg_private priv; | 
 | 338 | } __attribute__((packed)); | 
| Christopher Ferris | 6a9755d | 2017-01-13 14:09:31 -0800 | [diff] [blame] | 339 | #endif |