mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
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: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> Link: https://patch.msgid.link/20260203114027.3742558-4-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8834ae896b
commit
330d1deb41
|
|
@ -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__);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user