Skip to content

Commit

Permalink
audio: drc, multiband_drc: mark cold code
Browse files Browse the repository at this point in the history
Mark non-performance critical code with the __cold attribute.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
  • Loading branch information
lyakh authored and lgirdwood committed Mar 4, 2025
1 parent 96f1af0 commit ba88df8
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 27 deletions.
17 changes: 10 additions & 7 deletions src/audio/drc/drc.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <sof/audio/ipc-config.h>
#include <sof/audio/pipeline.h>
#include <sof/ipc/msg.h>
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
Expand Down Expand Up @@ -41,6 +42,7 @@ LOG_MODULE_DECLARE(drc, CONFIG_SOF_LOG_LEVEL);
extern const struct sof_uuid drc_uuid;
extern struct tr_ctx drc_tr;

/* Called from drc_setup() from drc_process(), so cannot be __cold */
void drc_reset_state(struct drc_state *state)
{
int i;
Expand Down Expand Up @@ -118,6 +120,7 @@ int drc_set_pre_delay_time(struct drc_state *state,
return 0;
}

/* Called from drc_process(), so cannot be __cold */
static int drc_setup(struct drc_comp_data *cd, uint16_t channels, uint32_t rate)
{
uint32_t sample_bytes = get_sample_bytes(cd->source_format);
Expand Down Expand Up @@ -205,10 +208,10 @@ __cold static int drc_free(struct processing_module *mod)
return 0;
}

static int drc_set_config(struct processing_module *mod, uint32_t param_id,
enum module_cfg_fragment_position pos, uint32_t data_offset_size,
const uint8_t *fragment, size_t fragment_size, uint8_t *response,
size_t response_size)
__cold static int drc_set_config(struct processing_module *mod, uint32_t param_id,
enum module_cfg_fragment_position pos, uint32_t data_offset_size,
const uint8_t *fragment, size_t fragment_size, uint8_t *response,
size_t response_size)
{
struct drc_comp_data *cd = module_get_private_data(mod);
struct comp_dev *dev = mod->dev;
Expand Down Expand Up @@ -243,9 +246,9 @@ static int drc_set_config(struct processing_module *mod, uint32_t param_id,
fragment_size);
}

static int drc_get_config(struct processing_module *mod,
uint32_t config_id, uint32_t *data_offset_size,
uint8_t *fragment, size_t fragment_size)
__cold static int drc_get_config(struct processing_module *mod,
uint32_t config_id, uint32_t *data_offset_size,
uint8_t *fragment, size_t fragment_size)
{
struct sof_ipc_ctrl_data *cdata = (struct sof_ipc_ctrl_data *)fragment;
struct drc_comp_data *cd = module_get_private_data(mod);
Expand Down
32 changes: 18 additions & 14 deletions src/audio/multiband_drc/multiband_drc.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <sof/audio/ipc-config.h>
#include <sof/audio/pipeline.h>
#include <sof/ipc/msg.h>
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/math/numbers.h>
#include <module/crossover/crossover_common.h>
Expand Down Expand Up @@ -40,6 +41,7 @@ SOF_DEFINE_REG_UUID(multiband_drc);

DECLARE_TR_CTX(multiband_drc_tr, SOF_UUID(multiband_drc_uuid), LOG_LEVEL_INFO);

/* Called from multiband_drc_setup() from multiband_drc_process(), so cannot be __cold */
static void multiband_drc_reset_state(struct multiband_drc_state *state)
{
int i;
Expand Down Expand Up @@ -204,7 +206,9 @@ static int multiband_drc_init_coef(struct processing_module *mod, int16_t nch, u
return ret;
}

static int multiband_drc_setup(struct processing_module *mod, int16_t channels, uint32_t rate)
/* Called from multiband_drc_process(), so cannot be __cold */
static int multiband_drc_setup(struct processing_module *mod, int16_t channels,
uint32_t rate)
{
struct multiband_drc_comp_data *cd = module_get_private_data(mod);

Expand Down Expand Up @@ -277,7 +281,7 @@ static int multiband_drc_init(struct processing_module *mod)
return ret;
}

static int multiband_drc_free(struct processing_module *mod)
__cold static int multiband_drc_free(struct processing_module *mod)
{
struct multiband_drc_comp_data *cd = module_get_private_data(mod);

Expand All @@ -289,11 +293,11 @@ static int multiband_drc_free(struct processing_module *mod)
return 0;
}

static int multiband_drc_set_config(struct processing_module *mod, uint32_t param_id,
enum module_cfg_fragment_position pos,
uint32_t data_offset_size, const uint8_t *fragment,
size_t fragment_size, uint8_t *response,
size_t response_size)
__cold static int multiband_drc_set_config(struct processing_module *mod, uint32_t param_id,
enum module_cfg_fragment_position pos,
uint32_t data_offset_size, const uint8_t *fragment,
size_t fragment_size, uint8_t *response,
size_t response_size)
{
struct comp_dev *dev = mod->dev;

Expand All @@ -303,9 +307,9 @@ static int multiband_drc_set_config(struct processing_module *mod, uint32_t para
fragment, pos, data_offset_size, fragment_size);
}

static int multiband_drc_get_config(struct processing_module *mod,
uint32_t config_id, uint32_t *data_offset_size,
uint8_t *fragment, size_t fragment_size)
__cold static int multiband_drc_get_config(struct processing_module *mod,
uint32_t config_id, uint32_t *data_offset_size,
uint8_t *fragment, size_t fragment_size)
{
struct sof_ipc_ctrl_data *cdata = (struct sof_ipc_ctrl_data *)fragment;

Expand Down Expand Up @@ -349,9 +353,9 @@ static int multiband_drc_process(struct processing_module *mod,
return 0;
}

static int multiband_drc_prepare(struct processing_module *mod,
struct sof_source **sources, int num_of_sources,
struct sof_sink **sinks, int num_of_sinks)
__cold static int multiband_drc_prepare(struct processing_module *mod,
struct sof_source **sources, int num_of_sources,
struct sof_sink **sinks, int num_of_sinks)
{
struct multiband_drc_comp_data *cd = module_get_private_data(mod);
struct comp_dev *dev = mod->dev;
Expand Down Expand Up @@ -395,7 +399,7 @@ static int multiband_drc_prepare(struct processing_module *mod,
return ret;
}

static int multiband_drc_reset(struct processing_module *mod)
__cold static int multiband_drc_reset(struct processing_module *mod)
{
struct multiband_drc_comp_data *cd = module_get_private_data(mod);

Expand Down
14 changes: 8 additions & 6 deletions src/audio/multiband_drc/multiband_drc_ipc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <ipc/stream.h>
#include <sof/audio/buffer.h>
#include <sof/audio/audio_stream.h>
#include <sof/lib/memory.h>
#include <sof/list.h>

#include "multiband_drc.h"
Expand All @@ -27,9 +28,10 @@ void multiband_drc_process_enable(bool *process_enabled)
*process_enabled = true;
}

int multiband_drc_set_ipc_config(struct processing_module *mod, uint32_t param_id,
const uint8_t *fragment, enum module_cfg_fragment_position pos,
uint32_t data_offset_size, size_t fragment_size)
__cold int multiband_drc_set_ipc_config(struct processing_module *mod, uint32_t param_id,
const uint8_t *fragment,
enum module_cfg_fragment_position pos,
uint32_t data_offset_size, size_t fragment_size)
{
struct sof_ipc4_control_msg_payload *ctl = (struct sof_ipc4_control_msg_payload *)fragment;
struct multiband_drc_comp_data *cd = module_get_private_data(mod);
Expand Down Expand Up @@ -61,8 +63,8 @@ int multiband_drc_set_ipc_config(struct processing_module *mod, uint32_t param_i
fragment_size);
}

int multiband_drc_get_ipc_config(struct processing_module *mod, struct sof_ipc_ctrl_data *cdata,
size_t fragment_size)
__cold int multiband_drc_get_ipc_config(struct processing_module *mod,
struct sof_ipc_ctrl_data *cdata, size_t fragment_size)
{
struct multiband_drc_comp_data *cd = module_get_private_data(mod);

Expand All @@ -71,7 +73,7 @@ int multiband_drc_get_ipc_config(struct processing_module *mod, struct sof_ipc_c
return comp_data_blob_get_cmd(cd->model_handler, cdata, fragment_size);
}

int multiband_drc_params(struct processing_module *mod)
__cold int multiband_drc_params(struct processing_module *mod)
{
struct sof_ipc_stream_params *params = mod->stream_params;
struct sof_ipc_stream_params comp_params;
Expand Down

0 comments on commit ba88df8

Please sign in to comment.