Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/boards/intel_adsp_ace30_ptl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ CONFIG_LIBRARY_MANAGER=y
CONFIG_LIBRARY_BASE_ADDRESS=0xa0688000
CONFIG_LIBRARY_BUILD_LIB=y
CONFIG_LIBRARY_DEFAULT_MODULAR=y
CONFIG_COLD_STORE_EXECUTE_DRAM=y

# SOF / logging
CONFIG_SOF_LOG_LEVEL_INF=y
Expand Down
2 changes: 2 additions & 0 deletions src/include/sof/ipc/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ typedef uint32_t ipc_comp;
struct ipc_comp_dev;
const struct comp_driver *ipc4_get_comp_drv(uint32_t module_id);
struct comp_dev *ipc4_get_comp_dev(uint32_t comp_id);
int ipc4_add_comp_dev(struct comp_dev *dev);
const struct comp_driver *ipc4_get_drv(const void *uuid);
int ipc4_chain_manager_create(struct ipc4_chain_dma *cdma);
int ipc4_chain_dma_state(struct comp_dev *dev, struct ipc4_chain_dma *cdma);
int ipc4_create_chain_dma(struct ipc *ipc, struct ipc4_chain_dma *cdma);
Expand Down
9 changes: 2 additions & 7 deletions src/ipc/ipc-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
#include <rtos/cache.h>
#include <sof/lib/cpu.h>
#include <sof/lib/mailbox.h>
#include <sof/lib/memory.h>
#include <sof/list.h>
#include <sof/platform.h>
#include <rtos/sof.h>
Expand Down Expand Up @@ -189,14 +188,12 @@ static void schedule_ipc_worker(void)
#endif
}

__cold void ipc_msg_send_direct(struct ipc_msg *msg, void *data)
void ipc_msg_send_direct(struct ipc_msg *msg, void *data)
{
struct ipc *ipc = ipc_get();
k_spinlock_key_t key;
int ret;

assert_can_be_cold();

key = k_spin_lock(&ipc->lock);

/* copy mailbox data to message if not already copied */
Expand Down Expand Up @@ -283,10 +280,8 @@ void ipc_schedule_process(struct ipc *ipc)
#endif
}

__cold int ipc_init(struct sof *sof)
int ipc_init(struct sof *sof)
{
assert_can_be_cold();

tr_dbg(&ipc_tr, "ipc_init()");

/* init ipc data */
Expand Down
20 changes: 5 additions & 15 deletions src/ipc/ipc-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#include <rtos/cache.h>
#include <sof/lib/cpu.h>
#include <sof/lib/mailbox.h>
#include <sof/lib/memory.h>
#include <sof/list.h>
#include <sof/platform.h>
#include <rtos/sof.h>
Expand All @@ -38,10 +37,8 @@

LOG_MODULE_DECLARE(ipc, CONFIG_SOF_LOG_LEVEL);

__cold static bool valid_ipc_buffer_desc(const struct sof_ipc_buffer *desc)
static bool valid_ipc_buffer_desc(const struct sof_ipc_buffer *desc)
{
assert_can_be_cold();

if (desc->caps >= SOF_MEM_CAPS_LOWEST_INVALID)
return false;

Expand All @@ -50,12 +47,10 @@ __cold static bool valid_ipc_buffer_desc(const struct sof_ipc_buffer *desc)
}

/* create a new component in the pipeline */
__cold struct comp_buffer *buffer_new(const struct sof_ipc_buffer *desc, bool is_shared)
struct comp_buffer *buffer_new(const struct sof_ipc_buffer *desc, bool is_shared)
{
struct comp_buffer *buffer;

assert_can_be_cold();

tr_info(&buffer_tr, "buffer new size 0x%x id %d.%d flags 0x%x",
desc->size, desc->comp.pipeline_id, desc->comp.id, desc->flags);

Expand All @@ -80,7 +75,6 @@ __cold struct comp_buffer *buffer_new(const struct sof_ipc_buffer *desc, bool is
return buffer;
}

/* Called from multiple locations, including ipc_get_comp_by_ppl_id(), so cannot be cold */
int32_t ipc_comp_pipe_id(const struct ipc_comp_dev *icd)
{
switch (icd->type) {
Expand Down Expand Up @@ -183,11 +177,9 @@ int comp_verify_params(struct comp_dev *dev, uint32_t flag,
}
EXPORT_SYMBOL(comp_verify_params);

__cold int comp_buffer_connect(struct comp_dev *comp, uint32_t comp_core,
struct comp_buffer *buffer, uint32_t dir)
int comp_buffer_connect(struct comp_dev *comp, uint32_t comp_core,
struct comp_buffer *buffer, uint32_t dir)
{
assert_can_be_cold();

/* check if it's a connection between cores */
if (buffer->core != comp_core) {
#if CONFIG_INCOHERENT
Expand Down Expand Up @@ -266,15 +258,13 @@ int ipc_pipeline_complete(struct ipc *ipc, uint32_t comp_id)
ipc_ppl_sink->cd);
}

__cold int ipc_comp_free(struct ipc *ipc, uint32_t comp_id)
int ipc_comp_free(struct ipc *ipc, uint32_t comp_id)
{
struct ipc_comp_dev *icd;
struct comp_buffer *buffer;
struct comp_buffer *safe;
uint32_t flags;

assert_can_be_cold();

/* check whether component exists */
icd = ipc_get_comp_by_id(ipc, comp_id);
if (!icd) {
Expand Down
Loading
Loading