Skip to content

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

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

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 (efcaea63f):
    • 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) 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 (84e9247e8):
    • 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>
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 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
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.

2 participants