Unverified Commit 330d1deb authored by Bard Liao's avatar Bard Liao Committed by Mark Brown
Browse files

ASoC: SOF: Intel: hda-sdw-bpt: support simultaneous audio and BPT streams



Currently the SoundWire BPT stream uses the paired link DMA but not
reserve it. It works without any issue because we assume the SoundWire
BPT will not run with audio streams simultaneously.
To support simultaneous audio and BPT streams, we need to use the
hda_dma_prepare/cleanup helpers to reserve the pair link host DMA.

Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: default avatarPéter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20260203114027.3742558-4-yung-chuan.liao@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8834ae89
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -118,7 +118,8 @@ static int hda_sdw_bpt_dma_prepare(struct device *dev, struct hdac_ext_stream **

	dev_dbg(dev, "direction %d format_val %#x\n", direction, format);

	bpt_stream = hda_cl_prepare(dev, format, bpt_num_bytes, dmab_bdl, false, direction, false);
	bpt_stream = hda_data_stream_prepare(dev, format, bpt_num_bytes, dmab_bdl,
					     false, direction, false, true);
	if (IS_ERR(bpt_stream)) {
		dev_err(sdev->dev, "%s: SDW BPT DMA prepare failed: dir %d\n",
			__func__, direction);
@@ -162,7 +163,7 @@ static int hda_sdw_bpt_dma_deprepare(struct device *dev, struct hdac_ext_stream
	u32 mask;
	int ret;

	ret = hda_cl_cleanup(sdev->dev, dmab_bdl, false, sdw_bpt_stream);
	ret = hda_data_stream_cleanup(sdev->dev, dmab_bdl, false, sdw_bpt_stream, true);
	if (ret < 0) {
		dev_err(sdev->dev, "%s: SDW BPT DMA cleanup failed\n",
			__func__);