Skip to content

[stable-v2.15] sof framework: generic fixes for enabling wov-upstream backport (PR 1 of 3) - #11433

Draft
singalsu wants to merge 11 commits into
thesofproject:stable-v2.15from
singalsu:upstream_stable-v2.15_with_wov-upstream_backport_pr1
Draft

singalsu wants to merge 11 commits into
thesofproject:stable-v2.15from
singalsu:upstream_stable-v2.15_with_wov-upstream_backport_pr1

Conversation

@singalsu

Copy link
Copy Markdown
Collaborator

No description provided.

lyakh and others added 11 commits November 10, 2026 13:44
The "flags" argument of notifier_register() is unused, remove it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
(cherry picked from commit 9820953)
When comp_prepare() returns a negative error code in pipeline_comp_prepare(),
emit a pipe_err message including the component ID and error code. This
greatly accelerates diagnosing topology and IPC parameter configuration
failures during pipeline setup.

Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
In copier_dai_free(), guard cd->dd[i] against NULL before accessing
cd->dd[i]->gain_data and calling dai_common_free(). This prevents a NULL
pointer dereference if endpoint allocation failed during initialization
or during teardown of partially configured copier instances. Also reset
pointers to NULL after freeing.

Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
In dai_common_free() and dai_free(), guard dd, dd->dai, dd->dma, and
dd->dai_spec_config against NULL before dereferencing or releasing
channels, and reset pointers to NULL after freeing. Also add NULL
pointer guards to dai_put() and sof_dma_put().

This prevents NULL pointer dereferences and duplicate frees during
teardown of partially configured or failed DAI pipelines.

Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
When pipelines are cancelled via pipeline_schedule_cancel() during
pause or stop triggers, sa_set_panic_on_delay() is called to enable
panic on delay. In host testbench and library builds, the system agent
timer is not initialized, leaving the sa pointer NULL.

Add a NULL check in sa_set_panic_on_delay() before dereferencing the sa
pointer so host testbench runs do not crash with a segmentation fault.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
When a capture stream is starved or waiting for detection audio, logging
every 20 ms floods the trace buffer and causes diagnostic log messages
to be dropped.

Increase SOF_MIN_NO_BYTES_INTERVAL_MS from 20 ms to 1000 ms so that
trace transport bandwidth is conserved during idle capture periods.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
When freeing an EDF scheduled task, ensure any pending delayed work
associated with the task is cancelled before marking the task free and
clearing callbacks. This prevents delayed work from triggering on freed
task data during pipeline resets or teardown.

Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
CONFIG_ZEPHYR_DP_SCHEDULER can be enabled on cAVS, but only the ACE
platform_init() registered the DP scheduler. Creating a DP module on
cAVS then failed with "unable to bind scheduler to task (type 3)" and
module init returned -ENODEV.

Call scheduler_dp_init() after the LL scheduler is set up, as ACE does.

Co-developed-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
The DP lock is taken by the LL thread on every tick in
scheduler_dp_ll_tick() and by each DP thread after every run. It was
a k_sem, which has no priority inheritance: when a DP thread holding
it was preempted by other DP threads, the cooperative high priority LL
thread blocked until the holder got CPU time again.

With several busy DP modules (3 MFCC + 3 MWW on cAVS 2.5) single LL
ticks took up to ~40 ms, overrunning the DMIC DMAs of unrelated
streams. With a k_mutex the holder inherits the LL priority: LL max
drops from ~1.5M to <30k timer cycles, with no LL overruns or DMA
xruns.

Co-developed-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
EXPORT_SYMBOL() is defined in zephyr/llext/symbol.h. Without LLEXT
nothing includes it indirectly, so a static build with the debug
stream text messages fails. Include the header directly; the macro
is a no-op when LLEXT is disabled.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
… Lake

Add Panther Lake ACE 3.0 Intel OTC debug key modulus and exponent mapping
in sof_ri_info.py to support manifest and signature decoding on PTL binaries.

Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@kv2019i kv2019i changed the title sof framework: generic fixes for enabling wov-upstream backport (PR 1 of 3) [stable-v2.15] sof framework: generic fixes for enabling wov-upstream backport (PR 1 of 3) Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants