Commit 3a0e7bb8 authored by Rander Wang's avatar Rander Wang Committed by Mark Brown

ASoC: SOF: Intel: check fw_context_save for library reload

If fw_context_save is defined by fw, driver can skip library reload on
d3 exit or reload library.
Signed-off-by: default avatarRander Wang <rander.wang@intel.com>
Reviewed-by: default avatarPéter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://msgid.link/r/20231215083102.3064200-4-yung-chuan.liao@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 855a4772
...@@ -519,14 +519,15 @@ int hda_dsp_ipc4_load_library(struct snd_sof_dev *sdev, ...@@ -519,14 +519,15 @@ int hda_dsp_ipc4_load_library(struct snd_sof_dev *sdev,
struct sof_ipc4_fw_library *fw_lib, bool reload) struct sof_ipc4_fw_library *fw_lib, bool reload)
{ {
struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
struct sof_ipc4_fw_data *ipc4_data = sdev->private;
struct hdac_ext_stream *hext_stream; struct hdac_ext_stream *hext_stream;
struct firmware stripped_firmware; struct firmware stripped_firmware;
struct sof_ipc4_msg msg = {}; struct sof_ipc4_msg msg = {};
struct snd_dma_buffer dmab; struct snd_dma_buffer dmab;
int ret, ret1; int ret, ret1;
/* IMR booting will restore the libraries as well, skip the loading */ /* if IMR booting is enabled and fw context is saved for D3 state, skip the loading */
if (reload && hda->booted_from_imr) if (reload && hda->booted_from_imr && ipc4_data->fw_context_save)
return 0; return 0;
/* the fw_lib has been verified during loading, we can trust the validity here */ /* the fw_lib has been verified during loading, we can trust the validity here */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment