Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 2 additions & 9 deletions src/audio/copier/copier.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,12 +522,8 @@ static int init_pipeline_reg(struct comp_dev *dev)
struct copier_data *cd = comp_get_drvdata(dev);
struct ipc4_pipeline_registers pipe_reg;
uint32_t gateway_id;
int ret;

ret = comp_get_attribute(dev, COMP_ATTR_VDMA_INDEX, &gateway_id);
if (ret)
return ret;

gateway_id = cd->config.gtw_cfg.node_id.f.v_index;
if (gateway_id >= IPC4_MAX_PIPELINE_REG_SLOTS) {
comp_cl_err(&comp_copier, "gateway_id %u out of array bounds.", gateway_id);
return -EINVAL;
Expand Down Expand Up @@ -1721,9 +1717,6 @@ static int copier_get_attribute(struct comp_dev *dev, uint32_t type, void *value
struct copier_data *cd = comp_get_drvdata(dev);

switch (type) {
case COMP_ATTR_VDMA_INDEX:
*(uint32_t *)value = cd->config.gtw_cfg.node_id.f.v_index;
break;
case COMP_ATTR_BASE_CONFIG:
*(struct ipc4_base_module_cfg *)value = cd->config.base;
break;
Expand Down Expand Up @@ -1808,7 +1801,7 @@ static int copier_get_hw_params(struct comp_dev *dev, struct sof_ipc_stream_para
if (dev->ipc_config.type != SOF_COMP_DAI)
return -EINVAL;

return dai_zephyr_get_hw_params(dd, dev, params, dir);
return dai_common_get_hw_params(dd, dev, params, dir);
}

static int copier_unbind(struct comp_dev *dev, void *data)
Expand Down
13 changes: 8 additions & 5 deletions src/audio/dai-legacy.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ static void dai_free(struct comp_dev *dev)
rfree(dev);
}

int dai_zephyr_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
int dai_common_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
struct sof_ipc_stream_params *params, int dir)
{
int ret;
Expand Down Expand Up @@ -295,7 +295,7 @@ static int dai_comp_get_hw_params(struct comp_dev *dev,
{
struct dai_data *dd = comp_get_drvdata(dev);

return dai_zephyr_get_hw_params(dd, dev, params, dir);
return dai_common_get_hw_params(dd, dev, params, dir);
}

static int dai_comp_hw_params(struct comp_dev *dev,
Expand All @@ -317,12 +317,15 @@ static int dai_comp_hw_params(struct comp_dev *dev,
return 0;
}

static int dai_verify_params(struct comp_dev *dev,
static int dai_verify_params(struct dai_data *dd, struct comp_dev *dev,
struct sof_ipc_stream_params *params)
{
struct sof_ipc_stream_params hw_params;
int ret;

comp_dai_get_hw_params(dev, &hw_params, params->direction);
ret = dai_common_get_hw_params(dd, dev, &hw_params, params->direction);
if (ret < 0)
return ret;

/* checks whether pcm parameters match hardware DAI parameter set
* during dai_set_config(). If hardware parameter is equal to 0, it
Expand Down Expand Up @@ -504,7 +507,7 @@ int dai_zephyr_params(struct dai_data *dd, struct comp_dev *dev,
if (err < 0)
return err;

err = dai_verify_params(dev, params);
err = dai_verify_params(dd, dev, params);
if (err < 0) {
comp_err(dev, "dai_params(): pcm params verification failed.");
return -EINVAL;
Expand Down
13 changes: 7 additions & 6 deletions src/audio/dai-zephyr.c
Original file line number Diff line number Diff line change
Expand Up @@ -513,13 +513,13 @@ static void dai_free(struct comp_dev *dev)
rfree(dev);
}

int dai_zephyr_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
int dai_common_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
struct sof_ipc_stream_params *params, int dir)
{
struct dai_config cfg;
int ret;

comp_dbg(dev, "dai_zephyr_get_hw_params()");
comp_dbg(dev, "dai_common_get_hw_params()");

ret = dai_config_get(dd->dai->dev, &cfg, dir);
if (ret)
Expand All @@ -546,15 +546,16 @@ static int dai_comp_get_hw_params(struct comp_dev *dev,
{
struct dai_data *dd = comp_get_drvdata(dev);

return dai_zephyr_get_hw_params(dd, dev, params, dir);
return dai_common_get_hw_params(dd, dev, params, dir);
}

static int dai_verify_params(struct comp_dev *dev, struct sof_ipc_stream_params *params)
static int dai_verify_params(struct dai_data *dd, struct comp_dev *dev,
struct sof_ipc_stream_params *params)
{
struct sof_ipc_stream_params hw_params;
int ret;

ret = comp_dai_get_hw_params(dev, &hw_params, params->direction);
ret = dai_common_get_hw_params(dd, dev, &hw_params, params->direction);
if (ret < 0) {
comp_err(dev, "dai_verify_params(): dai_verify_params failed ret %d", ret);
return ret;
Expand Down Expand Up @@ -894,7 +895,7 @@ int dai_zephyr_params(struct dai_data *dd, struct comp_dev *dev,
if (err < 0)
return err;

err = dai_verify_params(dev, params);
err = dai_verify_params(dd, dev, params);
if (err < 0) {
comp_err(dev, "dai_zephyr_params(): pcm params verification failed.");
return -EINVAL;
Expand Down
2 changes: 1 addition & 1 deletion src/include/sof/audio/dai_copier.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ int dai_zephyr_ts_stop(struct dai_data *dd, struct comp_dev *dev);

int dai_zephyr_ts_get(struct dai_data *dd, struct comp_dev *dev, struct timestamp_data *tsd);

int dai_zephyr_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
int dai_common_get_hw_params(struct dai_data *dd, struct comp_dev *dev,
struct sof_ipc_stream_params *params, int dir);

int dai_zephyr_multi_endpoint_copy(struct dai_data **dd, struct comp_dev *dev,
Expand Down