Skip to content

Commit 4157d93

Browse files
committed
ipc: set config only if the config dai_index matches comp dai_index
Set config only for the comp who's dai_index matches the dai_index in the ipc config. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
1 parent a2cfd8c commit 4157d93

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

src/ipc/ipc.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,10 @@ int ipc_pipeline_complete(struct ipc *ipc, uint32_t comp_id)
333333

334334
int ipc_comp_dai_config(struct ipc *ipc, struct sof_ipc_dai_config *config)
335335
{
336+
struct sof_ipc_comp_dai *dai;
336337
struct ipc_comp_dev *icd;
337338
struct list_item *clist;
339+
struct comp_dev *dev;
338340
int ret = 0;
339341

340342
/* for each component */
@@ -347,10 +349,20 @@ int ipc_comp_dai_config(struct ipc *ipc, struct sof_ipc_dai_config *config)
347349
switch (icd->cd->comp.type) {
348350
case SOF_COMP_DAI:
349351
case SOF_COMP_SG_DAI:
350-
ret = comp_dai_config(icd->cd, config);
351-
if (ret < 0) {
352-
trace_ipc_error("eCD");
353-
return ret;
352+
dev = icd->cd;
353+
dai = (struct sof_ipc_comp_dai *)&dev->comp;
354+
355+
/*
356+
* set config if comp dai_index matches
357+
* config dai_index.
358+
*/
359+
if (dai->dai_index == config->dai_index &&
360+
dai->type == config->type) {
361+
ret = comp_dai_config(dev, config);
362+
if (ret < 0) {
363+
trace_ipc_error("eCD");
364+
return ret;
365+
}
354366
}
355367
break;
356368
default:

0 commit comments

Comments
 (0)