Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
In ASoC, hda codec and SOF driver set the same stream tag to hardware for a pcm stream and this stream tag should be restored to hardware after resuming from system suspend. For this bug, there are two capture pcm streams active before doing system suspend and one is terminated by user for the stream is unused and its stream tag is released. Later after doing system suspend the stream tag for remained active stream is released by SOF driver. After system resume, hda codec driver restores the stream tag for the active pcm stream, but SOF restores another stream tag which is allocated with a different stream tag, and this makes controller don't get any capture data, then infinite XRUN happens 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 Whisky Lake platform. GitHub issue: thesofproject/sof#1594 Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
- Loading branch information