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

TOMOYO Linux Cross Reference
Linux/sound/soc/intel/avs/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 /sound/soc/intel/avs/topology.h (Architecture m68k) and /sound/soc/intel/avs/topology.h (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*                                                  2 /*
  3  * Copyright(c) 2021 Intel Corporation              3  * Copyright(c) 2021 Intel Corporation
  4  *                                                  4  *
  5  * Authors: Cezary Rojewski <cezary.rojewski@i      5  * Authors: Cezary Rojewski <cezary.rojewski@intel.com>
  6  *          Amadeusz Slawinski <amadeuszx.slaw      6  *          Amadeusz Slawinski <amadeuszx.slawinski@linux.intel.com>
  7  */                                                 7  */
  8                                                     8 
  9 #ifndef __SOUND_SOC_INTEL_AVS_TPLG_H                9 #ifndef __SOUND_SOC_INTEL_AVS_TPLG_H
 10 #define __SOUND_SOC_INTEL_AVS_TPLG_H               10 #define __SOUND_SOC_INTEL_AVS_TPLG_H
 11                                                    11 
 12 #include <linux/list.h>                            12 #include <linux/list.h>
 13 #include "messages.h"                              13 #include "messages.h"
 14                                                    14 
 15 #define INVALID_OBJECT_ID       UINT_MAX           15 #define INVALID_OBJECT_ID       UINT_MAX
 16                                                    16 
 17 struct snd_soc_component;                          17 struct snd_soc_component;
 18                                                    18 
 19 struct avs_tplg {                                  19 struct avs_tplg {
 20         char name[SNDRV_CTL_ELEM_ID_NAME_MAXLE     20         char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
 21         u32 version;                               21         u32 version;
 22         struct snd_soc_component *comp;            22         struct snd_soc_component *comp;
 23                                                    23 
 24         struct avs_tplg_library *libs;             24         struct avs_tplg_library *libs;
 25         u32 num_libs;                              25         u32 num_libs;
 26         struct avs_audio_format *fmts;             26         struct avs_audio_format *fmts;
 27         u32 num_fmts;                              27         u32 num_fmts;
 28         struct avs_tplg_modcfg_base *modcfgs_b     28         struct avs_tplg_modcfg_base *modcfgs_base;
 29         u32 num_modcfgs_base;                      29         u32 num_modcfgs_base;
 30         struct avs_tplg_modcfg_ext *modcfgs_ex     30         struct avs_tplg_modcfg_ext *modcfgs_ext;
 31         u32 num_modcfgs_ext;                       31         u32 num_modcfgs_ext;
 32         struct avs_tplg_pplcfg *pplcfgs;           32         struct avs_tplg_pplcfg *pplcfgs;
 33         u32 num_pplcfgs;                           33         u32 num_pplcfgs;
 34         struct avs_tplg_binding *bindings;         34         struct avs_tplg_binding *bindings;
 35         u32 num_bindings;                          35         u32 num_bindings;
 36         u32 num_condpath_tmpls;                    36         u32 num_condpath_tmpls;
 37         struct avs_tplg_init_config *init_conf     37         struct avs_tplg_init_config *init_configs;
 38         u32 num_init_configs;                      38         u32 num_init_configs;
 39                                                    39 
 40         struct list_head path_tmpl_list;           40         struct list_head path_tmpl_list;
 41 };                                                 41 };
 42                                                    42 
 43 struct avs_tplg_library {                          43 struct avs_tplg_library {
 44         char name[SNDRV_CTL_ELEM_ID_NAME_MAXLE     44         char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
 45 };                                                 45 };
 46                                                    46 
 47 /* Matches header of struct avs_mod_cfg_base.      47 /* Matches header of struct avs_mod_cfg_base. */
 48 struct avs_tplg_modcfg_base {                      48 struct avs_tplg_modcfg_base {
 49         u32 cpc;                                   49         u32 cpc;
 50         u32 ibs;                                   50         u32 ibs;
 51         u32 obs;                                   51         u32 obs;
 52         u32 is_pages;                              52         u32 is_pages;
 53 };                                                 53 };
 54                                                    54 
 55 struct avs_tplg_pin_format {                       55 struct avs_tplg_pin_format {
 56         u32 pin_index;                             56         u32 pin_index;
 57         u32 iobs;                                  57         u32 iobs;
 58         struct avs_audio_format *fmt;              58         struct avs_audio_format *fmt;
 59 };                                                 59 };
 60                                                    60 
 61 struct avs_tplg_modcfg_ext {                       61 struct avs_tplg_modcfg_ext {
 62         guid_t type;                               62         guid_t type;
 63                                                    63 
 64         union {                                    64         union {
 65                 struct {                           65                 struct {
 66                         u16 num_input_pins;        66                         u16 num_input_pins;
 67                         u16 num_output_pins;       67                         u16 num_output_pins;
 68                         struct avs_tplg_pin_fo     68                         struct avs_tplg_pin_format *pin_fmts;
 69                 } generic;                         69                 } generic;
 70                 struct {                           70                 struct {
 71                         struct avs_audio_forma     71                         struct avs_audio_format *out_fmt;
 72                         struct avs_audio_forma     72                         struct avs_audio_format *blob_fmt; /* optional override */
 73                         u32 feature_mask;          73                         u32 feature_mask;
 74                         union avs_virtual_inde     74                         union avs_virtual_index vindex;
 75                         u32 dma_type;              75                         u32 dma_type;
 76                         u32 dma_buffer_size;       76                         u32 dma_buffer_size;
 77                         u32 config_length;         77                         u32 config_length;
 78                         /* config_data part of     78                         /* config_data part of priv data */
 79                 } copier;                          79                 } copier;
 80                 struct {                           80                 struct {
 81                         u32 out_channel_config     81                         u32 out_channel_config;
 82                         u32 coefficients_selec     82                         u32 coefficients_select;
 83                         s32 coefficients[AVS_C     83                         s32 coefficients[AVS_CHANNELS_MAX];
 84                         u32 channel_map;           84                         u32 channel_map;
 85                 } updown_mix;                      85                 } updown_mix;
 86                 struct {                           86                 struct {
 87                         u32 out_freq;              87                         u32 out_freq;
 88                 } src;                             88                 } src;
 89                 struct {                           89                 struct {
 90                         u32 out_freq;              90                         u32 out_freq;
 91                         u8 mode;                   91                         u8 mode;
 92                         u8 disable_jitter_buff     92                         u8 disable_jitter_buffer;
 93                 } asrc;                            93                 } asrc;
 94                 struct {                           94                 struct {
 95                         u32 cpc_lp_mode;           95                         u32 cpc_lp_mode;
 96                 } wov;                             96                 } wov;
 97                 struct {                           97                 struct {
 98                         struct avs_audio_forma     98                         struct avs_audio_format *ref_fmt;
 99                         struct avs_audio_forma     99                         struct avs_audio_format *out_fmt;
100                         u32 cpc_lp_mode;          100                         u32 cpc_lp_mode;
101                 } aec;                            101                 } aec;
102                 struct {                          102                 struct {
103                         struct avs_audio_forma    103                         struct avs_audio_format *ref_fmt;
104                         struct avs_audio_forma    104                         struct avs_audio_format *out_fmt;
105                 } mux;                            105                 } mux;
106                 struct {                          106                 struct {
107                         struct avs_audio_forma    107                         struct avs_audio_format *out_fmt;
108                 } micsel;                         108                 } micsel;
109         };                                        109         };
110 };                                                110 };
111                                                   111 
112 /* Specifies path behaviour during PCM ->trigg    112 /* Specifies path behaviour during PCM ->trigger(START) command. */
113 enum avs_tplg_trigger {                           113 enum avs_tplg_trigger {
114         AVS_TPLG_TRIGGER_AUTO = 0,                114         AVS_TPLG_TRIGGER_AUTO = 0,
115 };                                                115 };
116                                                   116 
117 struct avs_tplg_pplcfg {                          117 struct avs_tplg_pplcfg {
118         u16 req_size;                             118         u16 req_size;
119         u8 priority;                              119         u8 priority;
120         bool lp;                                  120         bool lp;
121         u16 attributes;                           121         u16 attributes;
122         enum avs_tplg_trigger trigger;            122         enum avs_tplg_trigger trigger;
123 };                                                123 };
124                                                   124 
125 struct avs_tplg_binding {                         125 struct avs_tplg_binding {
126         char target_tplg_name[SNDRV_CTL_ELEM_I    126         char target_tplg_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
127         u32 target_path_tmpl_id;                  127         u32 target_path_tmpl_id;
128         u32 target_ppl_id;                        128         u32 target_ppl_id;
129         u32 target_mod_id;                        129         u32 target_mod_id;
130         u8 target_mod_pin;                        130         u8 target_mod_pin;
131         u32 mod_id;                               131         u32 mod_id;
132         u8 mod_pin;                               132         u8 mod_pin;
133         u8 is_sink;                               133         u8 is_sink;
134 };                                                134 };
135                                                   135 
136 struct avs_tplg_path_template_id {                136 struct avs_tplg_path_template_id {
137         u32 id;                                   137         u32 id;
138         char tplg_name[SNDRV_CTL_ELEM_ID_NAME_    138         char tplg_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
139 };                                                139 };
140                                                   140 
141 struct avs_tplg_path_template {                   141 struct avs_tplg_path_template {
142         u32 id;                                   142         u32 id;
143                                                   143 
144         struct snd_soc_dapm_widget *w;            144         struct snd_soc_dapm_widget *w;
145                                                   145 
146         struct list_head path_list;               146         struct list_head path_list;
147                                                   147 
148         struct avs_tplg *owner;                   148         struct avs_tplg *owner;
149         /* Driver path templates management. *    149         /* Driver path templates management. */
150         struct list_head node;                    150         struct list_head node;
151 };                                                151 };
152                                                   152 
153 struct avs_tplg_init_config {                     153 struct avs_tplg_init_config {
154         u32 id;                                   154         u32 id;
155                                                   155 
156         u8 param;                                 156         u8 param;
157         size_t length;                            157         size_t length;
158         void *data;                               158         void *data;
159 };                                                159 };
160                                                   160 
161 struct avs_tplg_path {                            161 struct avs_tplg_path {
162         u32 id;                                   162         u32 id;
163                                                   163 
164         /* Path format requirements. */           164         /* Path format requirements. */
165         struct avs_audio_format *fe_fmt;          165         struct avs_audio_format *fe_fmt;
166         struct avs_audio_format *be_fmt;          166         struct avs_audio_format *be_fmt;
167                                                   167 
168         struct list_head ppl_list;                168         struct list_head ppl_list;
169                                                   169 
170         struct avs_tplg_path_template *owner;     170         struct avs_tplg_path_template *owner;
171         /* Path template path-variants managem    171         /* Path template path-variants management. */
172         struct list_head node;                    172         struct list_head node;
173 };                                                173 };
174                                                   174 
175 struct avs_tplg_pipeline {                        175 struct avs_tplg_pipeline {
176         u32 id;                                   176         u32 id;
177                                                   177 
178         struct avs_tplg_pplcfg *cfg;              178         struct avs_tplg_pplcfg *cfg;
179         struct avs_tplg_binding **bindings;       179         struct avs_tplg_binding **bindings;
180         u32 num_bindings;                         180         u32 num_bindings;
181         struct list_head mod_list;                181         struct list_head mod_list;
182                                                   182 
183         struct avs_tplg_path *owner;              183         struct avs_tplg_path *owner;
184         /* Path pipelines management. */          184         /* Path pipelines management. */
185         struct list_head node;                    185         struct list_head node;
186 };                                                186 };
187                                                   187 
188 struct avs_tplg_module {                          188 struct avs_tplg_module {
189         u32 id;                                   189         u32 id;
190                                                   190 
191         struct avs_tplg_modcfg_base *cfg_base;    191         struct avs_tplg_modcfg_base *cfg_base;
192         struct avs_audio_format *in_fmt;          192         struct avs_audio_format *in_fmt;
193         u8 core_id;                               193         u8 core_id;
194         u8 domain;                                194         u8 domain;
195         struct avs_tplg_modcfg_ext *cfg_ext;      195         struct avs_tplg_modcfg_ext *cfg_ext;
196         u32 ctl_id;                               196         u32 ctl_id;
197         u32 num_config_ids;                       197         u32 num_config_ids;
198         u32 *config_ids;                          198         u32 *config_ids;
199                                                   199 
200         struct avs_tplg_pipeline *owner;          200         struct avs_tplg_pipeline *owner;
201         /* Pipeline modules management. */        201         /* Pipeline modules management. */
202         struct list_head node;                    202         struct list_head node;
203 };                                                203 };
204                                                   204 
205 struct avs_tplg *avs_tplg_new(struct snd_soc_c    205 struct avs_tplg *avs_tplg_new(struct snd_soc_component *comp);
206                                                   206 
207 int avs_load_topology(struct snd_soc_component    207 int avs_load_topology(struct snd_soc_component *comp, const char *filename);
208 int avs_remove_topology(struct snd_soc_compone    208 int avs_remove_topology(struct snd_soc_component *comp);
209                                                   209 
210 #endif                                            210 #endif
211                                                   211 

~ [ 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