summaryrefslogtreecommitdiff
path: root/sound/soc/sof/intel
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-06-18 02:18:16 +0300
committerMark Brown <broonie@kernel.org>2022-06-18 02:18:16 +0300
commit57b06e9711a5ed5accd04b301da0f27f04aa21d3 (patch)
treeb879e8d5f05649c05bc98980f658a58b04cfb5db /sound/soc/sof/intel
parenta37a9224d0500f0cf5bf13cb225163c21b29e0f6 (diff)
parent58ecb11eab44dd5d64e35664ac4d62fecb6328f4 (diff)
downloadlinux-57b06e9711a5ed5accd04b301da0f27f04aa21d3.tar.xz
ASoC: SOF: Intel: fix resume from hibernate
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: The enablement of IMR-based DSP boot helped reduce resume latency, but unfortunately the context is not saved in S4 and S5 which leads to multiple reports of boot failures. This patchset forces a full firmware reload/reboot when resuming from S4/S5 and restores functionality.
Diffstat (limited to 'sound/soc/sof/intel')
-rw-r--r--sound/soc/sof/intel/hda-loader.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
index d3ec5996a9a3..145d483bd129 100644
--- a/sound/soc/sof/intel/hda-loader.c
+++ b/sound/soc/sof/intel/hda-loader.c
@@ -389,7 +389,8 @@ int hda_dsp_cl_boot_firmware(struct snd_sof_dev *sdev)
struct snd_dma_buffer dmab;
int ret, ret1, i;
- if (hda->imrboot_supported && !sdev->first_boot) {
+ if (sdev->system_suspend_target < SOF_SUSPEND_S4 &&
+ hda->imrboot_supported && !sdev->first_boot) {
dev_dbg(sdev->dev, "IMR restore supported, booting from IMR directly\n");
hda->boot_iteration = 0;
ret = hda_dsp_boot_imr(sdev);