Skip to content

[PTL] audio: ctc: add Google CTC and Dolby DAX integration for PTL - #11093

Draft
eddy1021 wants to merge 4 commits into
thesofproject:ptl-008-drop-stablefrom
eddy1021:ptl-008-dax-ctc
Draft

[PTL] audio: ctc: add Google CTC and Dolby DAX integration for PTL#11093
eddy1021 wants to merge 4 commits into
thesofproject:ptl-008-drop-stablefrom
eddy1021:ptl-008-dax-ctc

Conversation

@eddy1021

Copy link
Copy Markdown

Summary

Integrates the Google Crosstalk Cancellation (CTC) audio processing component into the Sound Open Firmware (SOF) pipeline on Intel Panther Lake (PTL) platforms and resolves lifecycle arbitration edge cases in Dolby DAX v1.1.

Key Changes

1. **`dax: make instance lifecycle operations safe and idempotent`**:
- Updates `dax_instance_manager.c` so `destroy_instance()`, `establish_instance()`, `dax_register_user()`, and `dax_unregister_user()` return `0` when an instance is already in the requested state, eliminating spurious pipeline trigger / reset errors during stream transitions.
2. **`audio: ctc: add Google CTC audio processing component wrapper`**:
- Adds the Google CTC component wrapper (`src/audio/google/`) supporting S16, S24, and S32 audio stream formats.
- Includes integer conversion bounds with NaN protection to prevent hardware FPU integer overflow traps.
- Updates IPC4 module adapter payload handling for small configuration blobs.
- Enables CTC in PTL Zephyr application overlays (`dts_overlay.conf`, `dax_overlay.conf`).
3. **`topology2: sdw-dmic: add 16-bit capture format support`**:
- Adds `S16_LE` format support to `host-gateway-capture` in `sdw-dmic-generic.conf`.
4. **`topology2: add Google CTC pipelines and targets for PTL`**:
- Adds `mixout-gain-dax-ctc-alh-dai-copier-playback` and `mixout-gain-eqiir-eqfir-drc-ctc-alh-dai-copier-playback` pipelines.
- Routes playback through CTC when `SDW_SPK_CTC=true` across PTL topology targets.

Verification

- Firmware compiled cleanly with Zephyr toolchain.
- Topologies compiled cleanly with `alsatplg` against SOF IPC4 ABI.
- Verified on DUT: sound card registration, PCM playback, deep buffer, stress tests, and microphone capture pass with 0 dmesg errors.

Eddy Hsu added 4 commits August 13, 2026 16:40
Ensure destroy_instance, establish_instance, dax_register_user, and
dax_unregister_user return 0 when an instance is already in the requested
state, preventing spurious errors during pipeline stop, reset, and prepare
re-entries.
Signed-off-by: Eddy Hsu <eddyhsu@google.com>
Integrate Google Crosstalk Cancellation (CTC) audio processing component
into SOF audio processing pipeline.
Key improvements:
- Add Google CTC wrapper in src/audio/google/ with support for S16, S24,
and S32 audio stream processing and runtime configuration blobs.
- Add safe float-to-integer conversion functions with clamping and NaN guards
to prevent hardware FPU integer overflow exceptions.
- Add circular buffer handling and pending sample tracking across audio periods.
- Update module adapter IPC4 payload sizing handler to support small CTC configuration blobs.
- Enable Google CTC in PTL dts and dax overlays with appropriate stack and heap sizing.
Signed-off-by: Eddy Hsu <eddyhsu@google.com>
Add 16-bit audio format support (S16_LE) to host-gateway-capture in
sdw-dmic-generic.conf so that 16-bit microphone capture requests initialize
properly without copier initialization errors.
Signed-off-by: Eddy Hsu <eddyhsu@google.com>
Add Google Crosstalk Cancellation (CTC) component support to PTL
topologies:
- Add mixout-gain-dax-ctc-alh-dai-copier-playback pipeline for DAX speaker
paths on Lapis (sof-ptl-cs42l43-agg-l3-cs35l56-l2-dax).
- Add mixout-gain-eqiir-eqfir-drc-ctc-alh-dai-copier-playback pipeline for
generic SDCA speaker paths on Moonstone (sof-sdca-1amp-id2).
- Update sdw-amp-dax.conf, sdw-amp-generic.conf, and cavs-sdw.conf to route
through CTC when SDW_SPK_CTC is true.
- Enable SDW_SPK_CTC in tplg-targets-ace3.cmake and tplg-targets-sdca-generic.cmake.
Signed-off-by: Eddy Hsu <eddyhsu@google.com>
@eddy1021
eddy1021 changed the base branch from main to ptl-008-drop-stableAugust 13, 2026 17:54
Sign up for freeto 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.

1 participant

@eddy1021