summaryrefslogtreecommitdiff
path: root/sound/soc/sof/intel
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2025-06-20 11:33:01 +0100
committerMark Brown <broonie@kernel.org>2025-06-20 11:33:01 +0100
commit07651feeeefbc65e6dae4fbb6fc8d8c785bea574 (patch)
tree78693dab3b385d98320350e5901d397abf4c4b57 /sound/soc/sof/intel
parent820e04cb8cae4904d670b5eca7feaeb07020debe (diff)
parentace9b3daf2b4778358573d3698e34cb1c0fa7e14 (diff)
downloadlwn-07651feeeefbc65e6dae4fbb6fc8d8c785bea574.tar.gz
lwn-07651feeeefbc65e6dae4fbb6fc8d8c785bea574.zip
ASoC: SOF: ipc4/Intel: Support for partial context
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>: The firmware will be able to only save and restore the context related to library management. This means that even without a full context save, the libraries do not need to be re-loaded to the firmware after second or consecutive boots. This is reported via the FW_READY notification, where BIT(15) indicates: 0 - the library restore is not done 1 - library restore is done This bit is only valid if full context save is not enabled, full context save is by definition saves and restores the library related book-keeping as well. Add a new flag to tell the platform code if the libraries have been restored, no need to reload them after boot.
Diffstat (limited to 'sound/soc/sof/intel')
-rw-r--r--sound/soc/sof/intel/hda-loader.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
index 49085ca7b46b..2cc11d8b0f70 100644
--- a/sound/soc/sof/intel/hda-loader.c
+++ b/sound/soc/sof/intel/hda-loader.c
@@ -579,8 +579,11 @@ int hda_dsp_ipc4_load_library(struct snd_sof_dev *sdev,
struct sof_ipc4_msg msg = {};
int ret, ret1;
- /* if IMR booting is enabled and fw context is saved for D3 state, skip the loading */
- if (reload && hda->booted_from_imr && ipc4_data->fw_context_save)
+ /*
+ * if IMR booting is enabled and libraries have been restored during fw
+ * boot, skip the loading
+ */
+ if (reload && hda->booted_from_imr && ipc4_data->libraries_restored)
return 0;
/* the fw_lib has been verified during loading, we can trust the validity here */