IPC4: Workaround: Lock DP modules to same core as pipeline

This commit prevents DP modueles from run on different cores than
the pipleine LL modules. This limitation is enforced because of
possible cache races in pipeline_for_each_comp()
To be removed till safe implementation is ready

Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
This commit is contained in:
Marcin Szkudlinski 2023-02-28 17:40:55 +01:00 committed by Liam Girdwood
parent eeeec95c98
commit ada31dbd1b
1 changed files with 11 additions and 1 deletions

View File

@ -326,7 +326,17 @@ static int pipeline_comp_prepare(struct comp_dev *current,
#if CONFIG_ZEPHYR_DP_SCHEDULER
case COMP_PROCESSING_DOMAIN_DP:
/* this is a DP scheduled module */
err = pipeline_comp_dp_task_init(current);
/*
* workaround - because of some issues with cache, currently we can allow DP
* modules to run on the same core as LL pipeline only.
* to be removed once buffering is fixed
*/
if (current->pipeline->core != current->ipc_config.core)
err = -EINVAL;
else
err = pipeline_comp_dp_task_init(current);
break;
#endif /* CONFIG_ZEPHYR_DP_SCHEDULER */