diff --git a/src/audio/asrc/asrc.c b/src/audio/asrc/asrc.c index 64771759d..5de48456c 100644 --- a/src/audio/asrc/asrc.c +++ b/src/audio/asrc/asrc.c @@ -71,8 +71,8 @@ DECLARE_TR_CTX(asrc_tr, SOF_UUID(asrc_uuid), LOG_LEVEL_INFO); /* asrc component private data */ struct comp_data { #if CONFIG_IPC_MAJOR_4 - /* Must be the 1st field, function ipc4_create_buffer casts components private data as - * ipc4_base_module_cfg! + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! */ struct ipc4_asrc_module_cfg ipc_config; #else diff --git a/src/audio/copier.c b/src/audio/copier.c index d3d42cc52..e71ce332c 100644 --- a/src/audio/copier.c +++ b/src/audio/copier.c @@ -48,8 +48,8 @@ DECLARE_SOF_RT_UUID("copier", copier_comp_uuid, 0x9ba00c83, 0xca12, 0x4a83, DECLARE_TR_CTX(copier_comp_tr, SOF_UUID(copier_comp_uuid), LOG_LEVEL_INFO); struct copier_data { - /* Must be the 1st field, function ipc4_create_buffer casts components private data - * as ipc4_base_module_cfg! + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! */ struct ipc4_copier_module_cfg config; struct comp_dev *endpoint[IPC4_COPIER_MODULE_OUTPUT_PINS_COUNT]; diff --git a/src/audio/mixer.c b/src/audio/mixer.c index d8187457a..4a1222884 100644 --- a/src/audio/mixer.c +++ b/src/audio/mixer.c @@ -54,6 +54,9 @@ DECLARE_TR_CTX(mixer_tr, SOF_UUID(mixer_uuid), LOG_LEVEL_INFO); /* mixer component private data */ struct mixer_data { #if CONFIG_IPC_MAJOR_4 + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! + */ struct ipc4_base_module_cfg base_cfg; #endif diff --git a/src/audio/src/src.c b/src/audio/src/src.c index 02adf99b3..bf515814f 100644 --- a/src/audio/src/src.c +++ b/src/audio/src/src.c @@ -86,8 +86,8 @@ struct ipc4_config_src { struct comp_data { #if CONFIG_IPC_MAJOR_4 - /* Must be the 1st field, function ipc4_create_buffer casts components private data as - * ipc4_base_module_cfg! + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! */ struct ipc4_config_src ipc_config; #else diff --git a/src/include/sof/audio/aria/aria.h b/src/include/sof/audio/aria/aria.h index 35d8b642b..45bfb2efe 100644 --- a/src/include/sof/audio/aria/aria.h +++ b/src/include/sof/audio/aria/aria.h @@ -53,6 +53,9 @@ int aria_process_data(struct comp_dev *dev, int32_t *__restrict dst, * \brief Aria component private data. */ struct aria_data { + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! + */ struct ipc4_base_module_cfg base; /* channels count */ diff --git a/src/include/sof/audio/component.h b/src/include/sof/audio/component.h index 420364648..684817b80 100644 --- a/src/include/sof/audio/component.h +++ b/src/include/sof/audio/component.h @@ -936,6 +936,16 @@ static inline int comp_get_state(struct comp_dev *req_dev, struct comp_dev *dev) int comp_verify_params(struct comp_dev *dev, uint32_t flag, struct sof_ipc_stream_params *params); +#if CONFIG_IPC_MAJOR_4 +/** + * Temporary ugly function to get components base configuration. Fix me! + */ +static inline struct ipc4_base_module_cfg *ipc4_comp_get_base_module_cfg(struct comp_dev *dev) +{ + return (struct ipc4_base_module_cfg *)comp_get_drvdata(dev); +} +#endif + /** @}*/ #endif /* __SOF_AUDIO_COMPONENT_H__ */ diff --git a/src/include/sof/audio/up_down_mixer/up_down_mixer.h b/src/include/sof/audio/up_down_mixer/up_down_mixer.h index fb98ff790..51a0d069e 100644 --- a/src/include/sof/audio/up_down_mixer/up_down_mixer.h +++ b/src/include/sof/audio/up_down_mixer/up_down_mixer.h @@ -114,6 +114,9 @@ static inline enum ipc4_channel_index get_channel_index(const channel_map map, * \brief up_down_mixer component private data. */ struct up_down_mixer_data { + /* Must be the 1st field, function ipc4_comp_get_base_module_cfg casts components + * private data as ipc4_base_module_cfg! + */ struct ipc4_base_module_cfg base; /** Number of channels in the input buffer. */ size_t in_channel_no; diff --git a/src/ipc/ipc4/helper.c b/src/ipc/ipc4/helper.c index 99fbc2ee8..4024672d3 100644 --- a/src/ipc/ipc4/helper.c +++ b/src/ipc/ipc4/helper.c @@ -240,7 +240,7 @@ static struct comp_buffer *ipc4_create_buffer(struct comp_dev *src, struct comp_ struct sof_ipc_buffer ipc_buf; int buf_size; - src_cfg = (struct ipc4_base_module_cfg *)comp_get_drvdata(src); + src_cfg = ipc4_comp_get_base_module_cfg(src); /* double it since obs is single buffer size */ buf_size = src_cfg->obs * 2;