Skip to content

Commit 855a477

Browse files
RanderWangbroonie
authored andcommitted
ASoC: SOF: IPC4: query fw_context_save feature from fw
Driver queries fw_context_save feature when fw is ready and can skip library reload with this feature since library is saved in persistent memory. The default value of fw_context_save is true unless fw reports false. Signed-off-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://msgid.link/r/20231215083102.3064200-3-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 57cd29a commit 855a477

5 files changed

Lines changed: 10 additions & 0 deletions

File tree

sound/soc/sof/intel/lnl.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ int sof_lnl_ops_init(struct snd_sof_dev *sdev)
133133

134134
ipc4_data->mtrace_type = SOF_IPC4_MTRACE_INTEL_CAVS_2;
135135

136+
ipc4_data->fw_context_save = true;
137+
136138
/* External library loading support */
137139
ipc4_data->load_library = hda_dsp_ipc4_load_library;
138140

sound/soc/sof/intel/mtl.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,8 @@ int sof_mtl_ops_init(struct snd_sof_dev *sdev)
718718

719719
ipc4_data->mtrace_type = SOF_IPC4_MTRACE_INTEL_CAVS_2;
720720

721+
ipc4_data->fw_context_save = true;
722+
721723
/* External library loading support */
722724
ipc4_data->load_library = hda_dsp_ipc4_load_library;
723725

sound/soc/sof/intel/tgl.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ int sof_tgl_ops_init(struct snd_sof_dev *sdev)
9191

9292
ipc4_data->mtrace_type = SOF_IPC4_MTRACE_INTEL_CAVS_2;
9393

94+
ipc4_data->fw_context_save = true;
95+
9496
/* External library loading support */
9597
ipc4_data->load_library = hda_dsp_ipc4_load_library;
9698

sound/soc/sof/ipc4-loader.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,9 @@ int sof_ipc4_query_fw_configuration(struct snd_sof_dev *sdev)
391391
goto out;
392392
}
393393
break;
394+
case SOF_IPC4_FW_CONTEXT_SAVE:
395+
ipc4_data->fw_context_save = *tuple->value;
396+
break;
394397
default:
395398
break;
396399
}

sound/soc/sof/ipc4-priv.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ struct sof_ipc4_fw_data {
8181
u32 mtrace_log_bytes;
8282
int max_num_pipelines;
8383
u32 max_libs_count;
84+
bool fw_context_save;
8485

8586
int (*load_library)(struct snd_sof_dev *sdev,
8687
struct sof_ipc4_fw_library *fw_lib, bool reload);

0 commit comments

Comments
 (0)