mirror of https://github.com/thesofproject/sof.git
component: New function comp_get_base_module_cfg
Created new function comp_get_base_module_cfg which allows to get component's base configuration. This function is still access a component's private data in ugly way but it allows solve this issue easier in the future. Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
This commit is contained in:
parent
95f6f88be7
commit
e8c34fd62e
|
@ -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
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue