topology2: enable WoV function targets and graph - #11114
Conversation
There was a problem hiding this comment.
Pull request overview
Enables Wake-on-Voice (WoV) building blocks in the topology2 “cavs-sdw” function topology and adds new Panther Lake (ace3) topology2 production targets that turn on WoV split-capture for specific RT721/RT722/WCL-DMIC configurations. It also introduces a rimage TOML module entry for Google hotword detection and wires it into the WCL rimage config.
Changes:
- Add new topology2 production targets in
tplg-targets-ace3.cmaketo generate WoV-enabled split-capture topologies for RT721, RT722, and WCL DMIC ID5. - Extend
cavs-sdw.confincludes to bring in KPB/WoV classes and WoV/KPB pipeline definitions needed by the new targets. - Add
google_hotword_detect.tomland include it fromwcl.toml.hwhen the component is enabled.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| tools/topology/topology2/production/tplg-targets-ace3.cmake | Adds WoV-enabled cavs-sdw topology2 build targets for RT721/RT722/WCL DMIC ID5. |
| tools/topology/topology2/cavs-sdw.conf | Includes KPB/WoV and related pipeline definitions so cavs-sdw function topologies can instantiate WoV graphs. |
| tools/rimage/config/wcl.toml.h | Wires the new Google hotword module TOML into the WCL rimage module list. |
| src/audio/google/google_hotword_detect.toml | Introduces rimage module entry metadata for Google hotword detection. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| #if defined(CONFIG_COMP_GOOGLE_HOTWORD_DETECT) | ||
| #include <audio/google/google_hotword_detect.toml> | ||
| #endif |
886306f to
43d4d1c
Compare
Let me clear the +1 until the func topology issue is clarified.
b49ca6d to
f66ad03
Compare
| source $DMIC_WOV_DAI_PIPELINE_SRC | ||
| sink $DMIC_WOV_DAI_PIPELINE_KPB |
There was a problem hiding this comment.
so I have HW that has not PCH DMIC, but SSP - could we drop the DMIC part in the name or is it already in use ?
There was a problem hiding this comment.
Thanks for the review @lgirdwood
DMIC_WOV_DAI_PIPELINE_SRC and DMIC_WOV_DAI_PIPELINE_KPB are already defined in platform/intel/dmic-default.conf on origin/main (lines 29–30) and used in dmic-wov.conf.
https://github.com/thesofproject/sof/blob/main/tools/topology/topology2/platform/intel/dmic-wov.conf#L114
The new route block in line 114–115 follows that existing naming.
There was a problem hiding this comment.
Definitions are at dmic-default.conf#L29 in origin/main
|
|
||
| # RT721 WoV feature topology, loaded on top of the function topology via feature_topologies | ||
| "dmic-wov-feature\;sof-ptl-rt721-4ch-wov\;PLATFORM=ptl,NUM_DMICS=4,\ | ||
| DMIC0_ID=5,DMIC1_ID=6,DMIC1_ENABLE=false,DMIC1_RATE=16000,INCLUDE_WOV=true" |
There was a problem hiding this comment.
Not sure is rt721 needed. The sdw codec is not involved in the WoV feature, right? And we can use the same feature topology for both rt721 and rt722.
There was a problem hiding this comment.
It is better to add dmic in the file name because we may have SDW WoV in the future. Also, I think we can set PLATFORM="none" or "" and use the feature topology cross platforms. The PLATFORM is already set in the function or monolithic topology and we don't set the DMIC driver version in the WoV topology.
There was a problem hiding this comment.
ACK, Agreed.. have updated to single platform-agnostic feature topology target.
Kindly review.
| EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default" | ||
|
|
||
| # WCL DMIC WoV feature topology, loaded on top of the function topology via feature_topologies | ||
| "dmic-wov-feature\;sof-wcl-dmic-4ch-id5-wov\;PLATFORM=wcl,NUM_DMICS=4,\ |
There was a problem hiding this comment.
We can remove the id5 from the name. The BE link ID does not matter in the feature topology since it is not connected to the DAI.
There was a problem hiding this comment.
Done. Thanks
Add a standalone feature manifest (dmic-wov-feature.conf) for WoV/KPB pipeline loaded on top of the function topology via feature_topologies. Add a single platform-agnostic feature topology target sof-dmic-4ch-wov in tplg-targets-ace3.cmake, shared across PTL (rt721/rt722) and WCL. Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Add Google hotword module manifest for WCL and include it when CONFIG_COMP_GOOGLE_HOTWORD_DETECT is enabled or all modular components are forced. Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Patch moves WoV DMIC-to-KPB route to dmic-wov.conf enabling to use DMIC_WOV_DAI_PIPELINE_SRC instead of the generated dai-copier.DMIC.$index.1 name. Signed-off-by: Naveen Manohar <naveen.m@intel.com>
f66ad03 to
ceefed7
Compare
Implement WoV as feature topology loaded via feature_topologies
module parameter instead of a standalone function topology variant.
Add dmic-wov-feature.conf manifest and build targets for RT721, RT722
and WCL DMIC ID5. Enable WoV at runtime with:
'options snd_sof feature_topologies=sof---wov.tplg'
Verified on top of PR:https://github.com/thesofproject/sof/pull/11022/commits
V3: For now Posted removing wov-kpb-be.conf and wov-arbiter.conf
V4: single platform-agnostic feature topology target