On 7/11/22 02:05, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > The patch below does not apply to the 5.18-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. Indeed, there's a dependency on 2a68ff846164 ("ASoC: SOF: Intel: hda: Revisit IMR boot sequence") as well as the definitions added in the same patchset. 7a5974e035a6 ("ASoC: SOF: pm: add definitions for S4 and S5 states ") 6639990dbb25 ("ASoC: SOF: pm: add explicit behavior for ACPI S1 and S2 ") will send the backport shortly. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 391153522d186f19a008d824bb3a05950351ce6c Mon Sep 17 00:00:00 2001 > From: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > Date: Thu, 16 Jun 2022 15:18:18 -0500 > Subject: [PATCH] ASoC: SOF: Intel: disable IMR boot when resuming from ACPI S4 > and S5 states > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > The IMR was assumed to be preserved when suspending to S4 and S5 > states, but community reports invalidate that assumption, the hardware > seems to be powered off and the IMR memory content cleared. > > Make sure regular boot with firmware download is used for S4 and S5. > > BugLink: https://github.com/thesofproject/sof/issues/5892 > Fixes: 5fb5f51185126 ("ASoC: SOF: Intel: hda-loader: add IMR restore support") > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > Reviewed-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx> > Reviewed-by: Péter Ujfalusi <peter.ujfalusi@xxxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20220616201818.130802-4-pierre-louis.bossart@xxxxxxxxxxxxxxx > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > > 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); >