summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2020-09-07 15:28:59 +0100
committerMark Brown <broonie@kernel.org>2020-09-07 15:28:59 +0100
commitdaa90764600ed5a7bd38ea8bbff1228310b7f5ea (patch)
tree6702f13ea7bb6abed485bb8e2bbf4fa5614184b7 /include/sound
parenta252632df817f77bb6b31faf5bbba7350297aab6 (diff)
parent988d941882336b860d5fae1ee6f487eb110fe6d6 (diff)
Merge series "ASoC: SOF: component UUID support for 5.10" from Kai Vehmanen <kai.vehmanen@linux.intel.com>:
This series adds support for UUID based component identification in SOF. UUIDs provide a more scalable alternative to the old component type based approach to identify which DSP components should be loaded. More detailed description of UUID usage in SOF is available in: https://thesofproject.github.io/latest/developer_guides/uuid/ UUID support is an incremental update to the SOF IPC interface. Driver remains compatible with pre-UUID (ABI <3.17) firmware versions. Keyon Jie (16): ASoC: SOF: tokens: add token for component UUID ASoC: SOF: add comp_ext to struct snd_sof_widget ASoC: SOF: topology: create component extended tokens ASoC: SOF: topology: parse comp_ext_tokens for all widgets ASoC: SOF: use the sof_ipc_comp reserved bytes for extended data ASoC: SOF: topology: add helper for setting up IPC component ASoC: SOF: append extended data to sof_ipc_comp_dai ASoC: SOF: append extended data to sof_ipc_comp_mixer ASoC: SOF: append extended data to sof_ipc_comp_volume ASoC: SOF: append extended data to sof_ipc_comp_host ASoC: SOF: append extended data to sof_ipc_comp_src ASoC: SOF: append extended data to sof_ipc_comp_asrc ASoC: SOF: append extended data to sof_ipc_comp_tone ASoC: SOF: append extended data to sof_ipc_comp_process ASoC: SOF: append extended data to sof_ipc_comp_mux ASoC: SOF: topology: make process type optional include/sound/sof/topology.h | 12 +- include/uapi/sound/sof/tokens.h | 1 + sound/soc/sof/sof-audio.c | 23 +++- sound/soc/sof/sof-audio.h | 3 + sound/soc/sof/topology.c | 208 ++++++++++++++++++++------------ 5 files changed, 161 insertions(+), 86 deletions(-) -- 2.27.0
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/sof/topology.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/sound/sof/topology.h b/include/sound/sof/topology.h
index f56e80d09b32..d12736e14b69 100644
--- a/include/sound/sof/topology.h
+++ b/include/sound/sof/topology.h
@@ -57,8 +57,8 @@ struct sof_ipc_comp {
uint32_t pipeline_id;
uint32_t core;
- /* reserved for future use */
- uint32_t reserved[1];
+ /* extended data length, 0 if no extended data */
+ uint32_t ext_data_length;
} __packed;
/*
@@ -87,6 +87,9 @@ struct sof_ipc_comp {
*/
#define SOF_BUF_UNDERRUN_PERMITTED BIT(1)
+/* the UUID size in bytes, shared between FW and host */
+#define SOF_UUID_SIZE 16
+
/* create new component buffer - SOF_IPC_TPLG_BUFFER_NEW */
struct sof_ipc_buffer {
struct sof_ipc_comp comp;
@@ -300,4 +303,9 @@ enum sof_event_types {
SOF_KEYWORD_DETECT_DAPM_EVENT,
};
+/* extended data struct for UUID components */
+struct sof_ipc_comp_ext {
+ uint8_t uuid[SOF_UUID_SIZE];
+} __packed;
+
#endif