Skip to content

topology2, ace15: enable SSP2-BT hardware offload topologies and LP-GPDMA FIFO partition - #11432

Open
lgirdwood wants to merge 3 commits into
thesofproject:mainfrom
lgirdwood:topic/sof-bt-offload
Open

lgirdwood wants to merge 3 commits into
thesofproject:mainfrom
lgirdwood:topic/sof-bt-offload

Conversation

@lgirdwood

@lgirdwood lgirdwood commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

Summary

This series enables full-duplex Bluetooth SSP (SSP2-BT) hardware audio offload topologies (without altering existing non-BT topologies) and fixes ACE 1.5 LP-GPDMA FIFO partitioning required for SSP2-BT streaming on Arrow Lake / Meteor Lake:

  1. topology2: bt-ssp-config: enable rx_slots on 48 kHz hw_config.3 (e881e3ceb):
    • Sets rx_slots = 3 alongside tx_slots = 3 on hw_config.3 (48 kHz 2-channel TDM) so full-duplex 48 kHz Bluetooth SSP offload streams can capture and play back simultaneously.
  2. topology2: hda-generic, ace3: add SSP2-BT offload topologies (f547745ac):
    • Includes <ssp.conf>, <intel/hw_config_cardinal_clk.conf>, <bt-default.conf>, and conditional platform/intel/bt-generic.conf (ADD_BT=true) in sof-hda-generic.conf without modifying existing non-BT topologies.
    • Adds dedicated SSP2-BT (BT_PCM_ID=20, BT_PCM_NAME=Bluetooth, ADD_BT=true, using non-colliding pipeline scheduler IDs BT_PB_HOST_PIPELINE_ID=200, BT_PB_DAI_PIPELINE_ID=201, BT_CP_HOST_PIPELINE_ID=202, BT_CP_DAI_PIPELINE_ID=203) topology targets for ACE 1.5/2.0 and ACE 3.0 HDA platforms (sof-hda-generic-ace1-bt, sof-hda-generic-ace3-bt, sof-hda-generic-ace3-2ch-bt, sof-hda-generic-ace3-4ch-bt) and ACE 3.0 / Wildcat Lake RT722 4ch SoundWire platforms (sof-ptl-rt722-4ch-bt, sof-wcl-rt722-4ch-bt).
  3. app/boards: ace15_mtpm: enable CONFIG_DMA_DW_FIFO_PARTITION (0f0ed9acd):
    • Enables CONFIG_DMA_DW_FIFO_PARTITION=y in app/boards/intel_adsp_ace15_mtpm.conf (matching intel_adsp_cavs25.conf) so dw_dma_setup() partitions the LP-GPDMA hardware FIFO (0x16807f) instead of leaving FIFO partition sizes at zero, preventing immediate SSP2-BT GATEWAY_UNDERRUN_DETECTED errors on ACE 1.5 (mtl / arl-s).

Hardware Validation (Over-the-Air DSP-to-DSP SSP2-BT hw:0,20)

Validated bi-directionally (500 Hz TX on Wildcat Lake ladybird ↔ 1000 Hz TX on Panther Lake damsel-fly and Arrow Lake dragon-fly) paired with thesofproject/linux#6031:

# Transport Controller Offload Protocol ladybird RX FFT (1000 Hz TX) damsel-fly RX FFT (500 Hz TX) Status
1 A2DP SBC (0x00) (48 kHz 2ch) 999.97 Hz (RMS 14119.6) 499.35 Hz (RMS 14135.0) PASS
2 A2DP AAC (0x02) (48 kHz 2ch) 1000.08 Hz (RMS 13707.5) 500.57 Hz (RMS 13727.3) PASS
3 HFP/eSCO mSBC (0x05) (16 kHz 1ch) 999.90 Hz (RMS 14142.7) 500.08 Hz (RMS 14123.5) PASS
4 HFP/eSCO CVSD (0x02) (8 kHz 1ch) 1000.14 Hz (RMS 10833.2) 499.37 Hz (RMS 13668.5) PASS
5 HFP/eSCO G.711 u-law (0x00) (8 kHz 1ch) 1000.00 Hz (RMS 14006.2) 499.86 Hz (RMS 14177.9) PASS
6 HFP/eSCO G.711 A-law (0x01) (8 kHz 1ch) 1000.29 Hz (RMS 14098.8) 500.57 Hz (RMS 14261.1) PASS
7 HFP/eSCO Transparent (0x03) Raw PCM (8 kHz 1ch) 999.77 Hz (RMS 14227.0) 499.86 Hz (RMS 14194.3) PASS
8 LE Audio CIS Controller LC3 (0x06) (16 kHz 1ch) 1000.03 Hz (RMS 15343.7) 499.89 Hz (RMS 15503.1) PASS

@lgirdwood lgirdwood left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

pls check commit messages have correct line wrapping.

Enable rx_slots=3 alongside tx_slots=3 on the 48 kHz 2-channel SSP2-BT
hardware configuration (hw_config.3) so full-duplex 48 kHz Bluetooth
SSP offload streams can capture and play back simultaneously.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@lgirdwood
lgirdwood force-pushed the topic/sof-bt-offload branch from 562969f to 84e9247 Compare November 11, 2026 12:48
@lgirdwood lgirdwood changed the title topology2, ace15: enable SSP2-BT hardware offload and ACE 1.5 LP-GPDMA FIFO partition topology2, ace15: enable SSP2-BT hardware offload topologies and LP-GPDMA FIFO partition Nov 11, 2026
@lgirdwood
lgirdwood requested a balanced review from Copilot November 13, 2026 14:15
@lgirdwood

Copy link
Copy Markdown
Member Author

@naveen-manohar fyi

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.

🟡 Changes recommended

BT capture reuses scheduler indexes assigned to DMIC and SoundWire jack capture paths, leaving critical collisions in the HDA and ACE3 topology targets.

2 open issues
What changed in this PR

This PR adds full-duplex SSP2 Bluetooth hardware-offload variants to existing HDA and RT722 SoundWire topologies, and enables the LP-GPDMA FIFO partitioning needed for ACE 1.5 streaming.

Changes:

  • Adds optional Bluetooth support to the generic HDA topology and dedicated HDA and PTL/WCL RT722 BT targets.
  • Enables receive slots for the 48 kHz stereo Bluetooth SSP configuration.
  • Enables DMA FIFO partitioning on ACE 1.5 MTPM.
File Description
tools/​topology/​topology2/​sof-hda-generic.conf Adds SSP classes and conditional Bluetooth topology inclusion.
tools/​topology/​topology2/​production/​tplg-targets-hda-generic.cmake Registers HDA Bluetooth targets, including DMIC variants.
tools/​topology/​topology2/​production/​tplg-targets-ace3.cmake Adds the PTL RT722 Bluetooth target and WCL alias.
tools/​topology/​topology2/​platform/​intel/​bt-ssp-config.conf Enables receive slots for full-duplex 48 kHz operation.
app/​boards/​intel_adsp_ace15_mtpm.conf Enables LP-GPDMA FIFO partitioning.

Review effort: Balanced

Include SSP and Bluetooth offload definitions in sof-hda-generic.conf
when ADD_BT=true without altering existing non-BT topologies.

Add dedicated SSP2-BT offload topology targets (BT_PCM_ID=20,
BT_PCM_NAME=Bluetooth, ADD_BT=true) for ACE 1.5/2.0 and ACE 3.0 HDA
platforms (sof-hda-generic-ace1-bt, sof-hda-generic-ace3-bt,
sof-hda-generic-ace3-2ch-bt, sof-hda-generic-ace3-4ch-bt) as well as
ACE 3.0 / Wildcat Lake RT722 4ch SoundWire platforms
(sof-ptl-rt722-4ch-bt and sof-wcl-rt722-4ch-bt).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Enable CONFIG_DMA_DW_FIFO_PARTITION=y on ACE 1.5 (MTL/ARL-S) matching
CAVS 2.5 so dw_dma_setup() partitions the LP-GPDMA hardware FIFO
instead of leaving FIFO partition sizes at zero, preventing immediate
SSP2-BT GATEWAY_UNDERRUN_DETECTED errors.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@lgirdwood
lgirdwood force-pushed the topic/sof-bt-offload branch from 84e9247 to 0f0ed9a Compare November 13, 2026 17:40
@lgirdwood

Copy link
Copy Markdown
Member Author

Addressed all review comments:

  • Commit message line wrapping (@lgirdwood): Verified all three commit messages (e881e3ceb, f547745ac, 0f0ed9acd) wrap within 72 columns and pass checkpatch.pl with 0 errors, 0 warnings.
  • Pipeline scheduler index collisions (Copilot): Assigned BT_PB_HOST_PIPELINE_ID=200, BT_PB_DAI_PIPELINE_ID=201, BT_CP_HOST_PIPELINE_ID=202, BT_CP_DAI_PIPELINE_ID=203 to sof-ptl-rt722-4ch-bt (sof-wcl-rt722-4ch-bt) and all four sof-hda-generic-*-bt targets in f547745ac; re-built and validated all 5 targets with tplg_validate.py (0 errors) and confirmed zero duplicate pipeline scheduler indexes in the compiled .tplg binaries.

@lgirdwood
lgirdwood marked this pull request as ready for review November 13, 2026 20:47
@intel-sofci

Copy link
Copy Markdown

PR 11432: test results

Run date: 2026-11-13 21:24 UTC

Tested commit: 0f0ed9acdaed8bd6d1f08ae3f469de9d002f56f1

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

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