File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -333,8 +333,10 @@ int ipc_pipeline_complete(struct ipc *ipc, uint32_t comp_id)
333333
334334int 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 :
You can’t perform that action at this time.
0 commit comments