ipc4: check pipeline priority for error report

Fix capture issue on windows and linux. In original code
if the source is in another pipeline line and is inactive
, ENODATA is returned. If current pipeline has higher
priority than the source pipeline, then the source pipeline
may be not started, so we return error only when source
pipeline has higher priority.

Signed-off-by: Rander Wang <rander.wang@intel.com>
This commit is contained in:
Rander Wang 2022-03-22 16:33:56 +08:00 committed by Liam Girdwood
parent b67c2bf0d9
commit b154132b46
1 changed files with 4 additions and 0 deletions

View File

@ -52,6 +52,10 @@ pipeline_should_report_enodata_on_trigger(struct comp_dev *rsrc,
if (pipe_source && dev_comp_type(pipe_source) == SOF_COMP_DAI)
return false;
/* source pipeline may not be active since priority is not higher than current one */
if (rsrc->pipeline->priority <= ppl_data->start->pipeline->priority)
return false;
/* if component on which we depend to provide data is inactive, then the
* pipeline has no means of providing data
*/