From 456d1570e587c3a08a11efcc6552ecf7b7f905a6 Mon Sep 17 00:00:00 2001 From: Rander Wang Date: Wed, 1 Nov 2023 11:08:32 +0800 Subject: [PATCH] basefw: add support for fw config query for context save If CONFIG_ADSP_IMR_CONTEXT_SAVE is enabled, base fw will report fw_context_save is supported to host. Driver will assume fw doesn't support this feature if it is not reported. Signed-off-by: Rander Wang --- src/audio/base_fw.c | 4 ++++ src/include/ipc4/base_fw.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index ce7b5ca7778e..dc2d282be4c7 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -111,6 +111,10 @@ static int basefw_config(uint32_t *data_offset, char *data) sche_cfg.sys_tick_source = SOF_SCHEDULE_LL_TIMER; tlv_value_set(tuple, IPC4_SCHEDULER_CONFIGURATION, sizeof(sche_cfg), &sche_cfg); + tuple = tlv_next(tuple); + tlv_value_uint32_set(tuple, IPC4_FW_CONTEXT_SAVE, + IS_ENABLED(CONFIG_ADSP_IMR_CONTEXT_SAVE)); + tuple = tlv_next(tuple); *data_offset = (int)((char *)tuple - data); diff --git a/src/include/ipc4/base_fw.h b/src/include/ipc4/base_fw.h index 3c4a953405e2..3dd85f7701b7 100644 --- a/src/include/ipc4/base_fw.h +++ b/src/include/ipc4/base_fw.h @@ -361,8 +361,10 @@ enum ipc4_fw_config_params { IPC4_BUS_HARDWARE_ID = 25, /* Total number of FW config parameters */ IPC4_FW_CFG_PARAMS_COUNT, + /* FW context save on D3 entry */ + IPC4_FW_CONTEXT_SAVE = 100, /* Max config parameter id */ - IPC4_MAX_FW_CFG_PARAM = IPC4_FW_CFG_PARAMS_COUNT - 1, + IPC4_MAX_FW_CFG_PARAM = IPC4_FW_CONTEXT_SAVE - 1, }; enum ipc4_hw_config_params {