ipc4: skip component in the incomplete pipeline

Fix a error found by ipc4 Linux driver. Some component
pipeline may be incomplete, so the pipeline is not
updated to the component. Skip this pipeline and
return dai of null.

Signed-off-by: Rander Wang <rander.wang@intel.com>
This commit is contained in:
Rander Wang 2022-03-28 16:23:58 +08:00 committed by Liam Girdwood
parent 421f3b6006
commit f6d83ba510
1 changed files with 5 additions and 0 deletions

View File

@ -431,6 +431,11 @@ struct comp_dev *pipeline_get_dai_comp(uint32_t pipeline_id, uint32_t *latency)
buffer = buffer_from_list(comp_buffer_list(sink->cd, PPL_DIR_DOWNSTREAM)->next, buffer = buffer_from_list(comp_buffer_list(sink->cd, PPL_DIR_DOWNSTREAM)->next,
struct comp_buffer, PPL_DIR_DOWNSTREAM); struct comp_buffer, PPL_DIR_DOWNSTREAM);
buff_comp = buffer_get_comp(buffer, PPL_DIR_DOWNSTREAM); buff_comp = buffer_get_comp(buffer, PPL_DIR_DOWNSTREAM);
/* buffer_comp is in another pipeline and it is not complete */
if (!buff_comp->pipeline)
return NULL;
sink = ipc_get_ppl_sink_comp(ipc, buff_comp->pipeline->pipeline_id); sink = ipc_get_ppl_sink_comp(ipc, buff_comp->pipeline->pipeline_id);
if (!sink) if (!sink)