Skip to content

Commit 0a1587b

Browse files
authored
Merge pull request #158 from ranj063/dai_config
[RFT]dai: set config only if the config dai_index matches comp dai_index
2 parents 3ea7004 + 4157d93 commit 0a1587b

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)