diff mbox series

[03/10] ASoC: SOF: Intel: hda: reset stream before coupling host and link DMA's

Message ID 20211125101520.291581-4-kai.vehmanen@linux.intel.com (mailing list archive)
State Accepted
Commit 4794601a52d40a425542be1b88f8f5614fcf45b4
Headers show
Series ASoC: SOF: Fixes for Intel HD-Audio DMA stopping | expand

Commit Message

Kai Vehmanen Nov. 25, 2021, 10:15 a.m. UTC
From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>

The recommended programming sequence for HD-Audio DMA is to reset the
stream before coupling the link and host DMA's.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
---
 sound/soc/sof/intel/hda-stream.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c
index c2895bdd3f07..440827ce390d 100644
--- a/sound/soc/sof/intel/hda-stream.c
+++ b/sound/soc/sof/intel/hda-stream.c
@@ -659,6 +659,11 @@  int hda_dsp_stream_hw_free(struct snd_sof_dev *sdev,
 							hstream);
 	struct hdac_bus *bus = sof_to_bus(sdev);
 	u32 mask = 0x1 << stream->index;
+	int ret;
+
+	ret = hda_dsp_stream_reset(sdev, stream);
+	if (ret < 0)
+		return ret;
 
 	spin_lock_irq(&bus->reg_lock);
 	/* couple host and link DMA if link DMA channel is idle */