linux/sound/soc/sof/intel
Rander Wang 934bf82203
ASoC: SOF: Intel: hda: fix link DMA config
For this bug, there are two capture pcm streams active, with one
stream and its related stream tag released before suspend. Later
when system suspend is done, the stream tag for the remaining
active stream is released by SOF driver. After system resume, hda
codec driver restores the stream tag for the active pcm stream,
but SOF goes to assign a new one, which now doesn't match with the
stream tag used by codec driver, and this causes DMA to fail
receiving data, leading to unrecoverable XRUN condition in FW.

For stream tag is stored in both hda codec and SOF driver, it
shouldn't be released only in SOF driver. This patch just keeps the
stream information in dma data and checks whether there is a stored
DMA data for stream resuming from S3 and restores it. And it also
removes DMA data when the stream is released.

Tested on Whiskey Lake platform.

GitHub issue: https://github.com/thesofproject/sof/issues/1594
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20190722141402.7194-19-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-07-23 12:25:22 +01:00
..
apl.c ASoC: SOF: Intel: implement runtime idle for CNL/APL 2019-07-06 12:23:47 +01:00
bdw.c ASoC: SOF: fix DSP oops definitions in FW ABI 2019-06-03 17:56:38 +01:00
byt.c Merge branch 'asoc-5.2' into asoc-5.3 2019-06-03 18:38:15 +01:00
cnl.c ASoC: SOF: Intel: implement runtime idle for CNL/APL 2019-07-06 12:23:47 +01:00
hda-bus.c ASoC: SOF: Intel: hda: set bus->idx as 0 2019-05-03 14:58:35 +09:00
hda-codec.c ASoC: SOF: Intel: hda: Enable jack detection 2019-07-23 12:21:03 +01:00
hda-ctrl.c ASoC: SOF: Intel: hda: remove duplicated clear WAKESTS 2019-07-23 12:21:37 +01:00
hda-dai.c ASoC: SOF: Intel: hda: fix link DMA config 2019-07-23 12:25:22 +01:00
hda-dsp.c ASoC: SOF: Intel: hda: fix link DMA config 2019-07-23 12:25:22 +01:00
hda-ipc.c ASoC: SOF: Intel: ipc: don't check for HIPCCTL register value 2019-06-03 17:49:17 +01:00
hda-loader.c ASoC: SOF: Intel: hda: set I2S slave before enabling DSP 2019-05-03 14:58:11 +09:00
hda-pcm.c ASoC: SOF: Intel: hda-pcm: remove useless dependency on hdac_ext 2019-05-03 14:58:48 +09:00
hda-stream.c ASoC: SOF: Intel: hda: make sure RUN bit setting to 0 during clear stream status 2019-06-17 13:46:22 +01:00
hda-trace.c ASoC: SOF: Intel: Add Intel specific HDA trace operations 2019-04-28 02:51:23 +09:00
hda.c ASoC: SOF: Intel: hda: add a parameter to disable MSI 2019-07-23 12:21:45 +01:00
hda.h ASoC: SOF: Intel: hda: reset link DMA state in prepare 2019-07-23 12:22:02 +01:00
intel-ipc.c ASoC: SOF: Intel: Add legacy IPC support 2019-04-28 02:50:40 +09:00
Kconfig Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
shim.h ASoC: SOF: Intel: hda: add SSP info to the chip info struct 2019-05-03 14:57:39 +09:00