]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ASoC: SOF: Intel: reserve link DMA for sdw bpt stream
authorMark Brown <broonie@kernel.org>
Wed, 4 Feb 2026 11:18:54 +0000 (11:18 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 4 Feb 2026 11:18:54 +0000 (11:18 +0000)
commitdcf0470aa399e59ba9e13c7de87a60c8743a358a
tree717d9f2131ad26655270695d92519240f41263f7
parentbb6a3c2db281c7d5aaa79b2a6fa00bcd10c0bb8f
parent330d1deb410fe75f7f79bd1e5025f2827365eb83
ASoC: SOF: Intel: reserve link DMA for sdw bpt stream

Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>:

Currently, hda_sdw_bpt_dma_prepare() get a HDA stream and use the link
DMA but doesn't reserve it. It works fine because we assume the
SwoundWire BPT will not run with audio streams simultaneously. Create
and use the new helpers to reserve the link DMA and allow running BPT
and audio stream simultaneously.

Pierre adds:

For the record this solution has two issues not documented in any commit
message:

a) this will not work in 'dspless' mode, where the link DMA is not
enabled.  That's probably fine given that no one used that mode in
production, but that's a software restriction that you will not be able
to undo.

b) this raise the question of how bandwidth will be managed. The premise
of BPT is that it uses all the bus bandwidth to guarantee predictable
firmware download times. If the available bandwidth is restricted by
other audio streams, then mechanically the startup latency will be
increased and vary - or you will have to run the bus at a higher
frequency to provision enough bandwidth for BPT but that means higher
power consumption. Or you will have to change the bus clock dynamically
which is possible at the hardware level for SDCA parts but not legacy
ones.

I am not going to lay on the tracks for this low-level set of changes,
but you'll have to address the b) opens for future contributions.