From 1bdb7b0dd7d5e7047f7a17fa950f775ad09f3270 Mon Sep 17 00:00:00 2001 From: Adrian Bonislawski Date: Fri, 28 Aug 2026 17:03:41 +0200 Subject: [PATCH] audio: pipeline: create LL task for DP-only pipelines Initialize an LL task during pipeline preparation so secondary ring buffers are synchronized before DP processing. Signed-off-by: Adrian Bonislawski X --- src/audio/pipeline/pipeline-params.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/audio/pipeline/pipeline-params.c b/src/audio/pipeline/pipeline-params.c index afa7b7ec739e..8a2166b19769 100644 --- a/src/audio/pipeline/pipeline-params.c +++ b/src/audio/pipeline/pipeline-params.c @@ -254,6 +254,12 @@ int pipeline_params(struct pipeline *p, struct comp_dev *host, return ret; } +/** + * \brief Prepare a component after initializing its pipeline's LL task. + * + * DP modules have their own processing tasks, but their pipelines still need + * LL scheduling for trigger handling and secondary-buffer synchronization. + */ static int pipeline_comp_prepare(struct comp_dev *current, struct comp_buffer *calling_buf, struct pipeline_walk_context *ctx, int dir) @@ -274,12 +280,9 @@ static int pipeline_comp_prepare(struct comp_dev *current, return 0; } - if (current->ipc_config.proc_domain == COMP_PROCESSING_DOMAIN_LL) { - /* init a task for LL module, DP task has been created in during init_instance */ - err = pipeline_comp_ll_task_init(current->pipeline); - if (err < 0) - return err; - } + err = pipeline_comp_ll_task_init(current->pipeline); + if (err < 0) + return err; err = comp_prepare(current); if (err < 0 || err == PPL_STATUS_PATH_STOP)