diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index 2d8655af163b..277cb25a6645 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -681,6 +681,10 @@ __cold static int basefw_set_large_config(struct comp_dev *dev, uint32_t param_i assert_can_be_cold(); switch (param_id) { + case IPC4_ASTATE_TABLE: + /* Trivial handler due to an empty Astate Table requested in get_large_config */ + STATIC_ASSERT(IPC4_MAX_CLK_STATES == 0, IPC4_NON_ZERO_ASTATE_UNSUPPORTED); + return IPC4_SUCCESS; case IPC4_DMA_CONTROL: return basefw_dma_control(first_block, last_block, data_offset, data); case IPC4_PERF_MEASUREMENTS_STATE: diff --git a/src/include/ipc4/base_fw.h b/src/include/ipc4/base_fw.h index 86ee5f72a588..77b825ceffef 100644 --- a/src/include/ipc4/base_fw.h +++ b/src/include/ipc4/base_fw.h @@ -17,10 +17,11 @@ #ifndef __SOF_IPC4_BASE_FW_H__ #define __SOF_IPC4_BASE_FW_H__ -/* Three clk src states :low power XTAL, low power ring - * and high power ring oscillator +/* SOF FW performs autonomous management of clock sources. + * Set MAX_CLK_STATES to 0 in order to propagate this information through IPC and thus + * prevent reception of unsupported clock configuration. */ -#define IPC4_MAX_CLK_STATES 3 +#define IPC4_MAX_CLK_STATES 0 /* Max src queue count count supported by ipc4 */ #define IPC4_MAX_SRC_QUEUE 8