summaryrefslogtreecommitdiff
path: root/sound/soc/sof/ipc4-topology.h
diff options
context:
space:
mode:
authorBard Liao <yung-chuan.liao@linux.intel.com>2022-06-09 06:26:43 +0300
committerMark Brown <broonie@kernel.org>2022-06-10 15:32:10 +0300
commita45a4d4390b7a562f8edc3518ba6cd2ad17be5bc (patch)
tree7a2b8c77953a2ab7dbaa20bed6839f1dde623f27 /sound/soc/sof/ipc4-topology.h
parent9e2b5d33fec938ea2518735f2b66313cab89bb61 (diff)
downloadlinux-a45a4d4390b7a562f8edc3518ba6cd2ad17be5bc.tar.xz
ASoC: SOF: IPC4: add sdw blob
Add IPC4 SoundWire blob. It includes a common IPC4 gateway and a multiple ALH configuration struct which is used for storing the aggregated SoundWire stream information. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20220609032643.916882-24-ranjani.sridharan@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/ipc4-topology.h')
-rw-r--r--sound/soc/sof/ipc4-topology.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/sound/soc/sof/ipc4-topology.h b/sound/soc/sof/ipc4-topology.h
index 64d836f05bad..1a9c0627bae9 100644
--- a/sound/soc/sof/ipc4-topology.h
+++ b/sound/soc/sof/ipc4-topology.h
@@ -40,6 +40,8 @@
#define SOF_IPC4_GAIN_ALL_CHANNELS_MASK 0xffffffff
#define SOF_IPC4_VOL_ZERO_DB 0x7fffffff
+#define ALH_MAX_NUMBER_OF_GTW 16
+
/**
* struct sof_ipc4_pipeline - pipeline config data
* @priority: Priority of this pipeline
@@ -112,6 +114,29 @@ struct sof_ipc4_gtw_attributes {
uint32_t rsvd : 30;
};
+/** struct sof_ipc4_alh_multi_gtw_cfg: ALH gateway cfg data
+ * @count: Number of streams (valid items in mapping array)
+ * @alh_id: ALH stream id of a single ALH stream aggregated
+ * @channel_mask: Channel mask
+ * @mapping: ALH streams
+ */
+struct sof_ipc4_alh_multi_gtw_cfg {
+ uint32_t count;
+ struct {
+ uint32_t alh_id;
+ uint32_t channel_mask;
+ } mapping[ALH_MAX_NUMBER_OF_GTW];
+} __packed;
+
+/** struct sof_ipc4_alh_configuration_blob: ALH blob
+ * @gw_attr: Gateway attributes
+ * @alh_cfg: ALH configuration data
+ */
+struct sof_ipc4_alh_configuration_blob {
+ struct sof_ipc4_gtw_attributes gw_attr;
+ struct sof_ipc4_alh_multi_gtw_cfg alh_cfg;
+};
+
/**
* struct sof_ipc4_copier - copier config data
* @data: IPC copier data