Hi,
Hi,
The MOD_INIT_INSTANCE message contains a CPC (Cycles Per Chunk/processing unit) parameter. This CPC value is used by the firmware to calculate the total cycles needed by the enabled module instances and based on this it can decide to set the frequency of the DSP core(s).
The manifest section of the firmware image contains a module configuration section, where a per module table of configurations are listed with measured CPC values as triplet of IBS/IBS/CPC (Input/Output buffer size - corresponding to the selected audio format).
In case the CPC value is 0 (missing from the manifest or the configuration cannot be matched) the firmware will force the DSP cores to maximum speed to avoid audio glitches due to starvation. In these cases the kernel will print a warning message to let the SOF developers know about the gap and provide information to correct it with a firmware update.
Regards, Peter --- Peter Ujfalusi (5): ASoC: SOF: ipc4-loader: Drop unused bss_size from struct sof_ipc4_fw_module ASoC: SOF: ipc4-loader: Save a pointer to fm_config in sof_ipc4_fw_module ASoC: SOF: ipc4-topology: Rename sof_ipc4_update_pipeline_mem_usage() to be generic ASoC: SOF: ipc4-topology: Do not use the CPC value from topology ASoC: SOF: ipc4-loader/topology: Query the CPC value from manifest
sound/soc/sof/ipc4-loader.c | 72 ++++++++++++++++++++++++++++++++--- sound/soc/sof/ipc4-priv.h | 10 ++++- sound/soc/sof/ipc4-topology.c | 33 +++++++++------- 3 files changed, 94 insertions(+), 21 deletions(-)