~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/sound/sof/topology.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/sound/sof/topology.h (Version linux-6.11-rc3) and /include/sound/sof/topology.h (Version linux-5.11.22)


  1 /* SPDX-License-Identifier: (GPL-2.0-only OR B      1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
  2 /*                                                  2 /*
  3  * This file is provided under a dual BSD/GPLv      3  * This file is provided under a dual BSD/GPLv2 license.  When using or
  4  * redistributing this file, you may do so und      4  * redistributing this file, you may do so under either license.
  5  *                                                  5  *
  6  * Copyright(c) 2018 Intel Corporation         !!   6  * Copyright(c) 2018 Intel Corporation. All rights reserved.
  7  */                                                 7  */
  8                                                     8 
  9 #ifndef __INCLUDE_SOUND_SOF_TOPOLOGY_H__            9 #ifndef __INCLUDE_SOUND_SOF_TOPOLOGY_H__
 10 #define __INCLUDE_SOUND_SOF_TOPOLOGY_H__           10 #define __INCLUDE_SOUND_SOF_TOPOLOGY_H__
 11                                                    11 
 12 #include <sound/sof/header.h>                      12 #include <sound/sof/header.h>
 13                                                    13 
 14 /*                                                 14 /*
 15  * Component                                       15  * Component
 16  */                                                16  */
 17                                                    17 
 18 /* types of component */                           18 /* types of component */
 19 enum sof_comp_type {                               19 enum sof_comp_type {
 20         SOF_COMP_NONE = 0,                         20         SOF_COMP_NONE = 0,
 21         SOF_COMP_HOST,                             21         SOF_COMP_HOST,
 22         SOF_COMP_DAI,                              22         SOF_COMP_DAI,
 23         SOF_COMP_SG_HOST,       /**< scatter g     23         SOF_COMP_SG_HOST,       /**< scatter gather variant */
 24         SOF_COMP_SG_DAI,        /**< scatter g     24         SOF_COMP_SG_DAI,        /**< scatter gather variant */
 25         SOF_COMP_VOLUME,                           25         SOF_COMP_VOLUME,
 26         SOF_COMP_MIXER,                            26         SOF_COMP_MIXER,
 27         SOF_COMP_MUX,                              27         SOF_COMP_MUX,
 28         SOF_COMP_SRC,                              28         SOF_COMP_SRC,
 29         SOF_COMP_DEPRECATED0, /* Formerly SOF_ !!  29         SOF_COMP_SPLITTER,
 30         SOF_COMP_TONE,                             30         SOF_COMP_TONE,
 31         SOF_COMP_DEPRECATED1, /* Formerly SOF_ !!  31         SOF_COMP_SWITCH,
 32         SOF_COMP_BUFFER,                           32         SOF_COMP_BUFFER,
 33         SOF_COMP_EQ_IIR,                           33         SOF_COMP_EQ_IIR,
 34         SOF_COMP_EQ_FIR,                           34         SOF_COMP_EQ_FIR,
 35         SOF_COMP_KEYWORD_DETECT,                   35         SOF_COMP_KEYWORD_DETECT,
 36         SOF_COMP_KPB,                   /* A k     36         SOF_COMP_KPB,                   /* A key phrase buffer component */
 37         SOF_COMP_SELECTOR,              /**< c     37         SOF_COMP_SELECTOR,              /**< channel selector component */
 38         SOF_COMP_DEMUX,                            38         SOF_COMP_DEMUX,
 39         SOF_COMP_ASRC,          /**< Asynchron     39         SOF_COMP_ASRC,          /**< Asynchronous sample rate converter */
 40         SOF_COMP_DCBLOCK,                          40         SOF_COMP_DCBLOCK,
 41         SOF_COMP_SMART_AMP,             /**< s     41         SOF_COMP_SMART_AMP,             /**< smart amplifier component */
 42         SOF_COMP_MODULE_ADAPTER,               << 
 43         /* keep FILEREAD/FILEWRITE as the last     42         /* keep FILEREAD/FILEWRITE as the last ones */
 44         SOF_COMP_FILEREAD = 10000,      /**< h     43         SOF_COMP_FILEREAD = 10000,      /**< host test based file IO */
 45         SOF_COMP_FILEWRITE = 10001,     /**< h     44         SOF_COMP_FILEWRITE = 10001,     /**< host test based file IO */
 46 };                                                 45 };
 47                                                    46 
 48 /* XRUN action for component */                    47 /* XRUN action for component */
 49 #define SOF_XRUN_STOP           1       /**< s     48 #define SOF_XRUN_STOP           1       /**< stop stream */
 50 #define SOF_XRUN_UNDER_ZERO     2       /**< s     49 #define SOF_XRUN_UNDER_ZERO     2       /**< send 0s to sink */
 51 #define SOF_XRUN_OVER_NULL      4       /**< s     50 #define SOF_XRUN_OVER_NULL      4       /**< send data to NULL */
 52                                                    51 
 53 /* create new generic component - SOF_IPC_TPLG     52 /* create new generic component - SOF_IPC_TPLG_COMP_NEW */
 54 struct sof_ipc_comp {                              53 struct sof_ipc_comp {
 55         struct sof_ipc_cmd_hdr hdr;                54         struct sof_ipc_cmd_hdr hdr;
 56         uint32_t id;                               55         uint32_t id;
 57         enum sof_comp_type type;                   56         enum sof_comp_type type;
 58         uint32_t pipeline_id;                      57         uint32_t pipeline_id;
 59         uint32_t core;                             58         uint32_t core;
 60                                                    59 
 61         /* extended data length, 0 if no exten     60         /* extended data length, 0 if no extended data */
 62         uint32_t ext_data_length;                  61         uint32_t ext_data_length;
 63 } __packed __aligned(4);                       !!  62 } __packed;
 64                                                    63 
 65 /*                                                 64 /*
 66  * Component Buffers                               65  * Component Buffers
 67  */                                                66  */
 68                                                    67 
 69 /*                                                 68 /*
 70  * SOF memory capabilities, add new ones at th     69  * SOF memory capabilities, add new ones at the end
 71  */                                                70  */
 72 #define SOF_MEM_CAPS_RAM                BIT(0) !!  71 #define SOF_MEM_CAPS_RAM                        (1 << 0)
 73 #define SOF_MEM_CAPS_ROM                BIT(1) !!  72 #define SOF_MEM_CAPS_ROM                        (1 << 1)
 74 #define SOF_MEM_CAPS_EXT                BIT(2) !!  73 #define SOF_MEM_CAPS_EXT                        (1 << 2) /**< external */
 75 #define SOF_MEM_CAPS_LP                 BIT(3) !!  74 #define SOF_MEM_CAPS_LP                 (1 << 3) /**< low power */
 76 #define SOF_MEM_CAPS_HP                 BIT(4) !!  75 #define SOF_MEM_CAPS_HP                 (1 << 4) /**< high performance */
 77 #define SOF_MEM_CAPS_DMA                BIT(5) !!  76 #define SOF_MEM_CAPS_DMA                        (1 << 5) /**< DMA'able */
 78 #define SOF_MEM_CAPS_CACHE              BIT(6) !!  77 #define SOF_MEM_CAPS_CACHE                      (1 << 6) /**< cacheable */
 79 #define SOF_MEM_CAPS_EXEC               BIT(7) !!  78 #define SOF_MEM_CAPS_EXEC                       (1 << 7) /**< executable */
 80 #define SOF_MEM_CAPS_L3                 BIT(8) << 
 81                                                    79 
 82 /*                                                 80 /*
 83  * overrun will cause ring buffer overwrite, i     81  * overrun will cause ring buffer overwrite, instead of XRUN.
 84  */                                                82  */
 85 #define SOF_BUF_OVERRUN_PERMITTED       BIT(0)     83 #define SOF_BUF_OVERRUN_PERMITTED       BIT(0)
 86                                                    84 
 87 /*                                                 85 /*
 88  * underrun will cause readback of 0s, instead     86  * underrun will cause readback of 0s, instead of XRUN.
 89  */                                                87  */
 90 #define SOF_BUF_UNDERRUN_PERMITTED      BIT(1)     88 #define SOF_BUF_UNDERRUN_PERMITTED      BIT(1)
 91                                                    89 
 92 /* the UUID size in bytes, shared between FW a     90 /* the UUID size in bytes, shared between FW and host */
 93 #define SOF_UUID_SIZE   16                         91 #define SOF_UUID_SIZE   16
 94                                                    92 
 95 /* create new component buffer - SOF_IPC_TPLG_     93 /* create new component buffer - SOF_IPC_TPLG_BUFFER_NEW */
 96 struct sof_ipc_buffer {                            94 struct sof_ipc_buffer {
 97         struct sof_ipc_comp comp;                  95         struct sof_ipc_comp comp;
 98         uint32_t size;          /**< buffer si     96         uint32_t size;          /**< buffer size in bytes */
 99         uint32_t caps;          /**< SOF_MEM_C     97         uint32_t caps;          /**< SOF_MEM_CAPS_ */
100         uint32_t flags;         /**< SOF_BUF_      98         uint32_t flags;         /**< SOF_BUF_ flags defined above */
101         uint32_t reserved;      /**< reserved      99         uint32_t reserved;      /**< reserved for future use */
102 } __packed __aligned(4);                       !! 100 } __packed;
103                                                   101 
104 /* generic component config data - must always    102 /* generic component config data - must always be after struct sof_ipc_comp */
105 struct sof_ipc_comp_config {                      103 struct sof_ipc_comp_config {
106         struct sof_ipc_cmd_hdr hdr;               104         struct sof_ipc_cmd_hdr hdr;
107         uint32_t periods_sink;  /**< 0 means v    105         uint32_t periods_sink;  /**< 0 means variable */
108         uint32_t periods_source;/**< 0 means v    106         uint32_t periods_source;/**< 0 means variable */
109         uint32_t reserved1;     /**< reserved     107         uint32_t reserved1;     /**< reserved */
110         uint32_t frame_fmt;     /**< SOF_IPC_F    108         uint32_t frame_fmt;     /**< SOF_IPC_FRAME_ */
111         uint32_t xrun_action;                     109         uint32_t xrun_action;
112                                                   110 
113         /* reserved for future use */             111         /* reserved for future use */
114         uint32_t reserved[2];                     112         uint32_t reserved[2];
115 } __packed __aligned(4);                       !! 113 } __packed;
116                                                   114 
117 /* generic host component */                      115 /* generic host component */
118 struct sof_ipc_comp_host {                        116 struct sof_ipc_comp_host {
119         struct sof_ipc_comp comp;                 117         struct sof_ipc_comp comp;
120         struct sof_ipc_comp_config config;        118         struct sof_ipc_comp_config config;
121         uint32_t direction;     /**< SOF_IPC_S    119         uint32_t direction;     /**< SOF_IPC_STREAM_ */
122         uint32_t no_irq;        /**< don't sen    120         uint32_t no_irq;        /**< don't send periodic IRQ to host/DSP */
123         uint32_t dmac_config; /**< DMA engine     121         uint32_t dmac_config; /**< DMA engine specific */
124 } __packed __aligned(4);                       !! 122 }  __packed;
125                                                   123 
126 /* generic DAI component */                       124 /* generic DAI component */
127 struct sof_ipc_comp_dai {                         125 struct sof_ipc_comp_dai {
128         struct sof_ipc_comp comp;                 126         struct sof_ipc_comp comp;
129         struct sof_ipc_comp_config config;        127         struct sof_ipc_comp_config config;
130         uint32_t direction;     /**< SOF_IPC_S    128         uint32_t direction;     /**< SOF_IPC_STREAM_ */
131         uint32_t dai_index;     /**< index of     129         uint32_t dai_index;     /**< index of this type dai */
132         uint32_t type;          /**< DAI type     130         uint32_t type;          /**< DAI type - SOF_DAI_ */
133         uint32_t reserved;      /**< reserved     131         uint32_t reserved;      /**< reserved */
134 } __packed __aligned(4);                       !! 132 }  __packed;
135                                                   133 
136 /* generic mixer component */                     134 /* generic mixer component */
137 struct sof_ipc_comp_mixer {                       135 struct sof_ipc_comp_mixer {
138         struct sof_ipc_comp comp;                 136         struct sof_ipc_comp comp;
139         struct sof_ipc_comp_config config;        137         struct sof_ipc_comp_config config;
140 } __packed __aligned(4);                       !! 138 }  __packed;
141                                                   139 
142 /* volume ramping types */                        140 /* volume ramping types */
143 enum sof_volume_ramp {                            141 enum sof_volume_ramp {
144         SOF_VOLUME_LINEAR       = 0,              142         SOF_VOLUME_LINEAR       = 0,
145         SOF_VOLUME_LOG,                           143         SOF_VOLUME_LOG,
146         SOF_VOLUME_LINEAR_ZC,                     144         SOF_VOLUME_LINEAR_ZC,
147         SOF_VOLUME_LOG_ZC,                        145         SOF_VOLUME_LOG_ZC,
148         SOF_VOLUME_WINDOWS_FADE,               << 
149         SOF_VOLUME_WINDOWS_NO_FADE,            << 
150 };                                                146 };
151                                                   147 
152 /* generic volume component */                    148 /* generic volume component */
153 struct sof_ipc_comp_volume {                      149 struct sof_ipc_comp_volume {
154         struct sof_ipc_comp comp;                 150         struct sof_ipc_comp comp;
155         struct sof_ipc_comp_config config;        151         struct sof_ipc_comp_config config;
156         uint32_t channels;                        152         uint32_t channels;
157         uint32_t min_value;                       153         uint32_t min_value;
158         uint32_t max_value;                       154         uint32_t max_value;
159         uint32_t ramp;          /**< SOF_VOLUM    155         uint32_t ramp;          /**< SOF_VOLUME_ */
160         uint32_t initial_ramp;  /**< ramp spac    156         uint32_t initial_ramp;  /**< ramp space in ms */
161 } __packed __aligned(4);                       !! 157 }  __packed;
162                                                   158 
163 /* generic SRC component */                       159 /* generic SRC component */
164 struct sof_ipc_comp_src {                         160 struct sof_ipc_comp_src {
165         struct sof_ipc_comp comp;                 161         struct sof_ipc_comp comp;
166         struct sof_ipc_comp_config config;        162         struct sof_ipc_comp_config config;
167         /* either source or sink rate must be     163         /* either source or sink rate must be non zero */
168         uint32_t source_rate;   /**< source ra    164         uint32_t source_rate;   /**< source rate or 0 for variable */
169         uint32_t sink_rate;     /**< sink rate    165         uint32_t sink_rate;     /**< sink rate or 0 for variable */
170         uint32_t rate_mask;     /**< SOF_RATE_    166         uint32_t rate_mask;     /**< SOF_RATE_ supported rates */
171 } __packed __aligned(4);                       !! 167 } __packed;
172                                                   168 
173 /* generic ASRC component */                      169 /* generic ASRC component */
174 struct sof_ipc_comp_asrc {                        170 struct sof_ipc_comp_asrc {
175         struct sof_ipc_comp comp;                 171         struct sof_ipc_comp comp;
176         struct sof_ipc_comp_config config;        172         struct sof_ipc_comp_config config;
177         /* either source or sink rate must be     173         /* either source or sink rate must be non zero */
178         uint32_t source_rate;           /**< D    174         uint32_t source_rate;           /**< Define fixed source rate or */
179                                         /**< u    175                                         /**< use 0 to indicate need to get */
180                                         /**< t    176                                         /**< the rate from stream */
181         uint32_t sink_rate;             /**< D    177         uint32_t sink_rate;             /**< Define fixed sink rate or */
182                                         /**< u    178                                         /**< use 0 to indicate need to get */
183                                         /**< t    179                                         /**< the rate from stream */
184         uint32_t asynchronous_mode;     /**< s    180         uint32_t asynchronous_mode;     /**< synchronous 0, asynchronous 1 */
185                                         /**< W    181                                         /**< When 1 the ASRC tracks and */
186                                         /**< c    182                                         /**< compensates for drift. */
187         uint32_t operation_mode;        /**< p    183         uint32_t operation_mode;        /**< push 0, pull 1, In push mode the */
188                                         /**< A    184                                         /**< ASRC consumes a defined number */
189                                         /**< o    185                                         /**< of frames at input, with varying */
190                                         /**< n    186                                         /**< number of frames at output. */
191                                         /**< I    187                                         /**< In pull mode the ASRC outputs */
192                                         /**< a    188                                         /**< a defined number of frames while */
193                                         /**< n    189                                         /**< number of input frames varies. */
194                                                   190 
195         /* reserved for future use */             191         /* reserved for future use */
196         uint32_t reserved[4];                     192         uint32_t reserved[4];
197 } __packed __aligned(4);                       !! 193 } __attribute__((packed));
198                                                   194 
199 /* generic MUX component */                       195 /* generic MUX component */
200 struct sof_ipc_comp_mux {                         196 struct sof_ipc_comp_mux {
201         struct sof_ipc_comp comp;                 197         struct sof_ipc_comp comp;
202         struct sof_ipc_comp_config config;        198         struct sof_ipc_comp_config config;
203 } __packed __aligned(4);                       !! 199 } __packed;
204                                                   200 
205 /* generic tone generator component */            201 /* generic tone generator component */
206 struct sof_ipc_comp_tone {                        202 struct sof_ipc_comp_tone {
207         struct sof_ipc_comp comp;                 203         struct sof_ipc_comp comp;
208         struct sof_ipc_comp_config config;        204         struct sof_ipc_comp_config config;
209         int32_t sample_rate;                      205         int32_t sample_rate;
210         int32_t frequency;                        206         int32_t frequency;
211         int32_t amplitude;                        207         int32_t amplitude;
212         int32_t freq_mult;                        208         int32_t freq_mult;
213         int32_t ampl_mult;                        209         int32_t ampl_mult;
214         int32_t length;                           210         int32_t length;
215         int32_t period;                           211         int32_t period;
216         int32_t repeats;                          212         int32_t repeats;
217         int32_t ramp_step;                        213         int32_t ramp_step;
218 } __packed __aligned(4);                       !! 214 } __packed;
219                                                   215 
220 /** \brief Types of processing components */      216 /** \brief Types of processing components */
221 enum sof_ipc_process_type {                       217 enum sof_ipc_process_type {
222         SOF_PROCESS_NONE = 0,           /**< N    218         SOF_PROCESS_NONE = 0,           /**< None */
223         SOF_PROCESS_EQFIR,              /**< I    219         SOF_PROCESS_EQFIR,              /**< Intel FIR */
224         SOF_PROCESS_EQIIR,              /**< I    220         SOF_PROCESS_EQIIR,              /**< Intel IIR */
225         SOF_PROCESS_KEYWORD_DETECT,     /**< K    221         SOF_PROCESS_KEYWORD_DETECT,     /**< Keyword Detection */
226         SOF_PROCESS_KPB,                /**< K    222         SOF_PROCESS_KPB,                /**< KeyPhrase Buffer Manager */
227         SOF_PROCESS_CHAN_SELECTOR,      /**< C    223         SOF_PROCESS_CHAN_SELECTOR,      /**< Channel Selector */
228         SOF_PROCESS_MUX,                          224         SOF_PROCESS_MUX,
229         SOF_PROCESS_DEMUX,                        225         SOF_PROCESS_DEMUX,
230         SOF_PROCESS_DCBLOCK,                      226         SOF_PROCESS_DCBLOCK,
231         SOF_PROCESS_SMART_AMP,  /**< Smart Amp    227         SOF_PROCESS_SMART_AMP,  /**< Smart Amplifier */
232 };                                                228 };
233                                                   229 
234 /* generic "effect", "codec" or proprietary pr    230 /* generic "effect", "codec" or proprietary processing component */
235 struct sof_ipc_comp_process {                     231 struct sof_ipc_comp_process {
236         struct sof_ipc_comp comp;                 232         struct sof_ipc_comp comp;
237         struct sof_ipc_comp_config config;        233         struct sof_ipc_comp_config config;
238         uint32_t size;  /**< size of bespoke d    234         uint32_t size;  /**< size of bespoke data section in bytes */
239         uint32_t type;  /**< sof_ipc_process_t    235         uint32_t type;  /**< sof_ipc_process_type */
240                                                   236 
241         /* reserved for future use */             237         /* reserved for future use */
242         uint32_t reserved[7];                     238         uint32_t reserved[7];
243                                                   239 
244         unsigned char data[];                  !! 240         uint8_t data[0];
245 } __packed __aligned(4);                       !! 241 } __packed;
246                                                   242 
247 /* frees components, buffers and pipelines        243 /* frees components, buffers and pipelines
248  * SOF_IPC_TPLG_COMP_FREE, SOF_IPC_TPLG_PIPE_F    244  * SOF_IPC_TPLG_COMP_FREE, SOF_IPC_TPLG_PIPE_FREE, SOF_IPC_TPLG_BUFFER_FREE
249  */                                               245  */
250 struct sof_ipc_free {                             246 struct sof_ipc_free {
251         struct sof_ipc_cmd_hdr hdr;               247         struct sof_ipc_cmd_hdr hdr;
252         uint32_t id;                              248         uint32_t id;
253 } __packed __aligned(4);                       !! 249 } __packed;
254                                                   250 
255 struct sof_ipc_comp_reply {                       251 struct sof_ipc_comp_reply {
256         struct sof_ipc_reply rhdr;                252         struct sof_ipc_reply rhdr;
257         uint32_t id;                              253         uint32_t id;
258         uint32_t offset;                          254         uint32_t offset;
259 } __packed __aligned(4);                       !! 255 } __packed;
260                                                   256 
261 /*                                                257 /*
262  * Pipeline                                       258  * Pipeline
263  */                                               259  */
264                                                   260 
265 /** \brief Types of pipeline scheduling time d    261 /** \brief Types of pipeline scheduling time domains */
266 enum sof_ipc_pipe_sched_time_domain {             262 enum sof_ipc_pipe_sched_time_domain {
267         SOF_TIME_DOMAIN_DMA = 0,        /**< D    263         SOF_TIME_DOMAIN_DMA = 0,        /**< DMA interrupt */
268         SOF_TIME_DOMAIN_TIMER,          /**< T    264         SOF_TIME_DOMAIN_TIMER,          /**< Timer interrupt */
269 };                                                265 };
270                                                   266 
271 /* new pipeline - SOF_IPC_TPLG_PIPE_NEW */        267 /* new pipeline - SOF_IPC_TPLG_PIPE_NEW */
272 struct sof_ipc_pipe_new {                         268 struct sof_ipc_pipe_new {
273         struct sof_ipc_cmd_hdr hdr;               269         struct sof_ipc_cmd_hdr hdr;
274         uint32_t comp_id;       /**< component    270         uint32_t comp_id;       /**< component id for pipeline */
275         uint32_t pipeline_id;   /**< pipeline     271         uint32_t pipeline_id;   /**< pipeline id */
276         uint32_t sched_id;      /**< Schedulin    272         uint32_t sched_id;      /**< Scheduling component id */
277         uint32_t core;          /**< core we r    273         uint32_t core;          /**< core we run on */
278         uint32_t period;        /**< execution    274         uint32_t period;        /**< execution period in us*/
279         uint32_t priority;      /**< priority     275         uint32_t priority;      /**< priority level 0 (low) to 10 (max) */
280         uint32_t period_mips;   /**< worst cas    276         uint32_t period_mips;   /**< worst case instruction count per period */
281         uint32_t frames_per_sched;/**< output     277         uint32_t frames_per_sched;/**< output frames of pipeline, 0 is variable */
282         uint32_t xrun_limit_usecs; /**< report    278         uint32_t xrun_limit_usecs; /**< report xruns greater than limit */
283         uint32_t time_domain;   /**< schedulin    279         uint32_t time_domain;   /**< scheduling time domain */
284 } __packed __aligned(4);                       !! 280 }  __packed;
285                                                   281 
286 /* pipeline construction complete - SOF_IPC_TP    282 /* pipeline construction complete - SOF_IPC_TPLG_PIPE_COMPLETE */
287 struct sof_ipc_pipe_ready {                       283 struct sof_ipc_pipe_ready {
288         struct sof_ipc_cmd_hdr hdr;               284         struct sof_ipc_cmd_hdr hdr;
289         uint32_t comp_id;                         285         uint32_t comp_id;
290 } __packed __aligned(4);                       !! 286 }  __packed;
291                                                   287 
292 struct sof_ipc_pipe_free {                        288 struct sof_ipc_pipe_free {
293         struct sof_ipc_cmd_hdr hdr;               289         struct sof_ipc_cmd_hdr hdr;
294         uint32_t comp_id;                         290         uint32_t comp_id;
295 } __packed __aligned(4);                       !! 291 }  __packed;
296                                                   292 
297 /* connect two components in pipeline - SOF_IP    293 /* connect two components in pipeline - SOF_IPC_TPLG_COMP_CONNECT */
298 struct sof_ipc_pipe_comp_connect {                294 struct sof_ipc_pipe_comp_connect {
299         struct sof_ipc_cmd_hdr hdr;               295         struct sof_ipc_cmd_hdr hdr;
300         uint32_t source_id;                       296         uint32_t source_id;
301         uint32_t sink_id;                         297         uint32_t sink_id;
302 } __packed __aligned(4);                       !! 298 }  __packed;
303                                                   299 
304 /* external events */                             300 /* external events */
305 enum sof_event_types {                            301 enum sof_event_types {
306         SOF_EVENT_NONE = 0,                       302         SOF_EVENT_NONE = 0,
307         SOF_KEYWORD_DETECT_DAPM_EVENT,            303         SOF_KEYWORD_DETECT_DAPM_EVENT,
308 };                                                304 };
                                                   >> 305 
                                                   >> 306 /* extended data struct for UUID components */
                                                   >> 307 struct sof_ipc_comp_ext {
                                                   >> 308         uint8_t uuid[SOF_UUID_SIZE];
                                                   >> 309 }  __packed;
309                                                   310 
310 #endif                                            311 #endif
311                                                   312 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php