diff options
author | Cezary Rojewski <cezary.rojewski@intel.com> | 2022-03-31 16:52:38 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-04-19 14:03:55 +0300 |
commit | eee475bb1ca71e963a51c20cc0f3e7c7b1cd2ba0 (patch) | |
tree | f5c004934d41074e184ed01c7eabe1e27ca70802 /sound/soc/intel/avs/topology.h | |
parent | 276b83c807a2bc2a8d9874a92b7fb7811c2df8b2 (diff) | |
download | linux-eee475bb1ca71e963a51c20cc0f3e7c7b1cd2ba0.tar.xz |
ASoC: Intel: avs: Parse path and path templates tuples
Path template is similar to path description found in skylake-driver
and it describes how given path shall look like in runtime - number of
modules and pipelines that shape it and how they are laid out. It is
tied to DAPM widget's (representing either a FE or a BE) private data.
Depending on the number of audio formats supported, each path template
may carry one or more descriptions of given path. During runtime, when
audio format is known, description matching said format is selected and
used when instantiating path on ADSP firmware side through IPCs.
Add parsing helpers to support loading such information from the
topology file.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20220331135246.993089-7-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/avs/topology.h')
-rw-r--r-- | sound/soc/intel/avs/topology.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/sound/soc/intel/avs/topology.h b/sound/soc/intel/avs/topology.h index 0a19302cef1a..3067d63cfcf7 100644 --- a/sound/soc/intel/avs/topology.h +++ b/sound/soc/intel/avs/topology.h @@ -33,6 +33,8 @@ struct avs_tplg { u32 num_pplcfgs; struct avs_tplg_binding *bindings; u32 num_bindings; + + struct list_head path_tmpl_list; }; struct avs_tplg_library { @@ -128,8 +130,33 @@ struct avs_tplg_binding { u8 is_sink; }; +struct avs_tplg_path_template_id { + u32 id; + char tplg_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; +}; + +struct avs_tplg_path_template { + u32 id; + + struct list_head path_list; + + struct avs_tplg *owner; + /* Driver path templates management. */ + struct list_head node; +}; + struct avs_tplg_path { u32 id; + + /* Path format requirements. */ + struct avs_audio_format *fe_fmt; + struct avs_audio_format *be_fmt; + + struct list_head ppl_list; + + struct avs_tplg_path_template *owner; + /* Path template path-variants management. */ + struct list_head node; }; struct avs_tplg_pipeline { |