Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
audio: pipeline: do not propagate pipeline triggers for IPC4
One major difference in IPC4 versus IPC3 is that each pipeline will get a separate SET_PIPELINE_STATE command. This is in stark contrast to IPC3 where host sends STREAM_TRIG_START and firmware is expected to propagate the state change to all connected pipelines in the graph. Change the code such that when pipeline component trigger is executed in IPC4 build, propagation is stopped whenever we reach another pipeline. This prevents bugs stemming from IPC3 related logic to propagate pipeline triggers, interfering with IPC4 usages like in bug 8481. To avoid false -ENODATA errors, drop IPC4 support for this capability. The check added in commit b154132 ("ipc4: check pipeline priority for error report") covers most cases, but this relies on host to send the SET_PIPELINE_STATE calls in particular order. This unfortunately is not a mandatory order to follow, so logic to check upstream pipeline status to conclude downstream is in permanent -ENODATA state, is not as solid as it is for IPC3. As this may lead to hard to debug errors (e.g. when changing pipeline priorities in topologies which again affects the order of the SET_PIPELINE_STATE), better to simply disable this feature for IPC4. Link: #8481 Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
- Loading branch information