Skip to content

topology2: dmic-wov: fix KPB output pin binding to the host copier - #11357

Open
kv2019i wants to merge 1 commit into
thesofproject:mainfrom
kv2019i:202610-tplg-validator-wov-fix
Open

kv2019i wants to merge 1 commit into
thesofproject:mainfrom
kv2019i:202610-tplg-validator-wov-fix

Conversation

@kv2019i

@kv2019i kv2019i commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

The KPB output pin 2 is bound to DMIC1_HOST_PIPELINE_SINK, which still uses the old host copier name 'copier.host.18.1'. The host copier is now named after its PCM ID, 'host-copier.11.capture', which is also what the routes use. When the DMIC16k PCM is opened, the kernel cannot find the host copier in the KPB pin binding and fails to bind the route in sof_ipc4_get_queue_id():

warning: W007 route 'kpb.19.1' -> 'host-copier.11.capture':
'host-copier.11.capture' is not in the output pin binding of
'kpb.19.1' (fails when PCM 'DMIC16k' capture is opened)

Use the current host copier name. Only sof-dmic-4ch-wov changes.

Copilot AI balanced review requested due to automatic review settings October 26, 2026 15:12
@kv2019i

kv2019i commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Found with the new tplg2 validator tool #11344

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.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

1 open issue
What changed in this PR

Updates the DMIC WoV topology default configuration to bind the KPB output pin to the correctly named host copier widget, fixing route binding failures when opening the DMIC16k capture PCM.

Changes:

  • Replace legacy host copier widget name (copier.host.18.1) with current PCM-ID-based name (host-copier.11.capture) for DMIC1_HOST_PIPELINE_SINK.
File Description
tools/​topology/​topology2/​platform/​intel/​dmic-default.conf Updates the DMIC1 host pipeline sink widget name to match the current host copier naming used by routes.

Review effort: Lite

DMIC1_DAI_PIPELINE_ID 19
WOV_PIPELINE_ID 20
DMIC1_HOST_PIPELINE_SINK 'copier.host.18.1'
DMIC1_HOST_PIPELINE_SINK 'host-copier.11.capture'

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed in V2.

@intel-sofci

intel-sofci commented Oct 26, 2026 •

Copy link
Copy Markdown

PR 11357: test results

Run date: 2026-10-28 14:25 UTC

Tested commit: d0402194760abefeb67a9b616313deacdea61a56

mtl pass rate lnl pass rate ptl pass rate wcl pass rate nvl pass rate

@bardliao

Copy link
Copy Markdown
Collaborator

Should we use the DMIC1_HOST_PIPELINE_SINK macro instead of hard code 'host-copier.11.capture' in the route? This can prevent the mismatch between route and binding.

@lgirdwood

Copy link
Copy Markdown
Member

Should we use the DMIC1_HOST_PIPELINE_SINK macro instead of hard code 'host-copier.11.capture' in the route? This can prevent the mismatch between route and binding.

This would be nicer @kv2019i does validator follow macros ?

The KPB output pin 2 is bound to DMIC1_HOST_PIPELINE_SINK, which still
uses the old host copier name 'copier.host.18.1'. The host copier is
now named after its PCM ID, 'host-copier.11.capture', which is also
what the routes use. When the DMIC16k PCM is opened, the kernel cannot
find the host copier in the KPB pin binding and fails to bind the
route in sof_ipc4_get_queue_id():

  warning: W007 route 'kpb.19.1' -> 'host-copier.11.capture':
  'host-copier.11.capture' is not in the output pin binding of
  'kpb.19.1' (fails when PCM 'DMIC16k' capture is opened)

Fix the issue by using correct host copier name. dmic-default.conf
already defines DMIC1_PCM_ID 11, the documented DMIC1 PCM ID. Use it for
the host copier pcm_id and the PCM id, and derive the host copier name
"host-copier.$DMIC1_PCM_ID.capture" from it in the KPB pin binding and
in both routes. alsatplg does not expand variables in Define values, so
DMIC1_HOST_PIPELINE_SINK cannot be derived from DMIC1_PCM_ID; drop it,
nothing else uses it.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
@kv2019i
kv2019i force-pushed the 202610-tplg-validator-wov-fix branch from 1a978f3 to d040219 Compare October 28, 2026 12:59
@kv2019i

kv2019i commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator Author

Should we use the DMIC1_HOST_PIPELINE_SINK macro instead of hard code 'host-copier.11.capture' in the route? This can prevent the mismatch between route and binding.

This would be nicer @kv2019i does validator follow macros ?

@bardliao @lgirdwood alsatplg does not yet expand variables in global defines (the PR to add this support is at alsa-project/alsa-utils#337 ), so we have to solve this otherwise. I now removed the define altogether and use existing variables to set the correct sink. The validator doesn't care about macros as it looks at the output binary of alsatplg.

V2 pushed with above fix.

@lgirdwood

Copy link
Copy Markdown
Member

@kv2019i can you check CI thanks !

@kv2019i

kv2019i commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator Author

@kv2019i can you check CI thanks !

@lgirdwood ack, all pass now.

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.

5 participants