Skip to content

topology2: enable WoV function targets and graph - #11114

Open
naveen-manohar wants to merge 3 commits into
thesofproject:mainfrom
naveen-manohar:ww346_wov_wcl_sdw
Open

topology2: enable WoV function targets and graph#11114
naveen-manohar wants to merge 3 commits into
thesofproject:mainfrom
naveen-manohar:ww346_wov_wcl_sdw

Conversation

@naveen-manohar

@naveen-manohar naveen-manohar commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

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

Copilot AI lite review requested due to automatic review settings August 22, 2026 04:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.cmake to generate WoV-enabled split-capture topologies for RT721, RT722, and WCL DMIC ID5.
  • Extend cavs-sdw.conf includes to bring in KPB/WoV classes and WoV/KPB pipeline definitions needed by the new targets.
  • Add google_hotword_detect.toml and include it from wcl.toml.h when 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.

Comment thread src/audio/google/google_hotword_detect.toml
Comment thread tools/rimage/config/wcl.toml.h Outdated
Comment on lines +129 to +131
#if defined(CONFIG_COMP_GOOGLE_HOTWORD_DETECT)
#include <audio/google/google_hotword_detect.toml>
#endif
kv2019i
kv2019i previously approved these changes Aug 24, 2026
Comment thread tools/topology/topology2/production/tplg-targets-ace3.cmake Outdated
Comment thread src/audio/google/google_hotword_detect.toml
@kv2019i
kv2019i requested review from bardliao and ujfalusi August 24, 2026 09:46
@kv2019i
kv2019i dismissed their stale review August 25, 2026 08:43

Let me clear the +1 until the func topology issue is clarified.

@naveen-manohar
naveen-manohar force-pushed the ww346_wov_wcl_sdw branch 2 times, most recently from b49ca6d to f66ad03 Compare August 26, 2026 06:15

@lgirdwood lgirdwood left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bardliao can you check the feature topology part. Thanks !

Comment on lines +114 to +115
source $DMIC_WOV_DAI_PIPELINE_SRC
sink $DMIC_WOV_DAI_PIPELINE_KPB

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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,\

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
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.

6 participants