Skip to content
Open
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
3 changes: 2 additions & 1 deletion src/audio/module_adapter/module_adapter_ipc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ int module_adapter_init_data(struct comp_dev *dev,
}
}

if (!config->ipc_extended_init) {
if (!config->ipc_extended_init ||
(!dst->ext_data->dp_data && !dst->ext_data->module_data)) {
dst->init_data = cfg; /* legacy API */
dst->avail = true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/sof/audio/component_ext.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ static inline int comp_trigger_local(struct comp_dev *dev, int cmd)
/* schedule or cancel task */
switch (cmd) {
case COMP_TRIGGER_START:
case COMP_TRIGGER_RELEASE:
ret = schedule_task(dev->task, 0, dev->period);
break;
case COMP_TRIGGER_RELEASE:
case COMP_TRIGGER_XRUN:
case COMP_TRIGGER_PAUSE:
case COMP_TRIGGER_STOP:
Expand Down
1 change: 1 addition & 0 deletions src/lib/objpool.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ void *objpool_alloc(struct objpool_head *head, size_t size, uint32_t flags)
unsigned int new_n;

if (list_is_empty(&head->list)) {
head->flags = flags;
new_n = 2;
} else {
/* Check the last one */
Expand Down
2 changes: 2 additions & 0 deletions src/schedule/zephyr_dp_schedule.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ struct scheduler_dp_data {

enum sof_dp_part_type {
SOF_DP_PART_HEAP,
SOF_DP_PART_HEAP_CACHE,
SOF_DP_PART_CFG,
SOF_DP_PART_CFG_CACHE,
SOF_DP_PART_TYPE_COUNT,
};

Expand Down
19 changes: 17 additions & 2 deletions src/schedule/zephyr_dp_schedule_application.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,9 @@ static void scheduler_dp_domain_free(struct task_dp_pdata *pdata)
llext_manager_rm_domain(pmod->dev->ipc_config.id, mdom);

k_mem_domain_remove_partition(mdom, pdata->mpart + SOF_DP_PART_HEAP);
k_mem_domain_remove_partition(mdom, pdata->mpart + SOF_DP_PART_HEAP_CACHE);
k_mem_domain_remove_partition(mdom, pdata->mpart + SOF_DP_PART_CFG);
k_mem_domain_remove_partition(mdom, pdata->mpart + SOF_DP_PART_CFG_CACHE);

pmod->mdom = NULL;
objpool_free(&dp_mdom_head, mdom);
Expand Down Expand Up @@ -516,8 +518,11 @@ int scheduler_dp_task_init(struct task **task, const struct sof_uuid_entry *uid,
struct k_mem_domain *mdom = objpool_alloc(&dp_mdom_head, sizeof(*mdom),
SOF_MEM_FLAG_COHERENT);

if (!mdom)
if (!mdom) {
tr_err(&dp_tr, "objpool allocation failed");
ret = -ENOMEM;
goto e_thread;
}

mod->mdom = mdom;

Expand All @@ -534,12 +539,22 @@ int scheduler_dp_task_init(struct task **task, const struct sof_uuid_entry *uid,
.size = size,
.attr = K_MEM_PARTITION_P_RW_U_RW,
};
pdata->mpart[SOF_DP_PART_HEAP_CACHE] = (struct k_mem_partition){
.start = (uintptr_t)sys_cache_cached_ptr_get((void *)start),
.size = size,
.attr = K_MEM_PARTITION_P_RW_U_RW | XTENSA_MMU_CACHED_WB,
};
/* Host mailbox partition for additional IPC parameters: read-only */
pdata->mpart[SOF_DP_PART_CFG] = (struct k_mem_partition){
.start = (uintptr_t)MAILBOX_HOSTBOX_BASE,
.start = (uintptr_t)sys_cache_uncached_ptr_get((void *)MAILBOX_HOSTBOX_BASE),
.size = 4096,
.attr = K_MEM_PARTITION_P_RO_U_RO,
};
pdata->mpart[SOF_DP_PART_CFG_CACHE] = (struct k_mem_partition){
.start = (uintptr_t)MAILBOX_HOSTBOX_BASE,
.size = 4096,
.attr = K_MEM_PARTITION_P_RO_U_RO | XTENSA_MMU_CACHED_WB,
};

for (pidx = 0; pidx < SOF_DP_PART_TYPE_COUNT; pidx++) {
ret = k_mem_domain_add_partition(mdom, pdata->mpart + pidx);
Expand Down
8 changes: 4 additions & 4 deletions tools/topology/topology2/development/tplg-targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ NHLT_BIN=nhlt-sof-lnl-nocodec-fpga-4ch.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000
# HDA topology with passthrough analog codec pipelines using CHAIN_DMA
"sof-hda-generic\;sof-hda-passthrough-chain-dma\;HDA_CONFIG=passthrough,CODEC_HDA_CHAIN_DMA=true"

# SSP topology for PTL
# SSP topology for PTL, includes Data Processing SRC
"cavs-nocodec\;sof-ptl-nocodec\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec.bin"
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec.bin,SRC_DOMAIN=DP"

# SSP topology for PTL with 96 kHz DMIC
"cavs-nocodec\;sof-ptl-nocodec-dmic-4ch-96k\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
Expand Down Expand Up @@ -310,9 +310,9 @@ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec.bin,SRC_DOMAIN=DP"
# SSP test topology for Data Processing SRC on LNL
"cavs-nocodec\;sof-lnl-nocodec-dp-test\;PLATFORM=lnl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-lnl-nocodec.bin,SRC_DOMAIN=DP"
# SSP test topology for Data Processing SRC on PTL
# SSP test topology for PTL with no DP
"cavs-nocodec\;sof-ptl-nocodec-dp-test\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec.bin,SRC_DOMAIN=DP"
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec.bin"

# SSP test topology for Data Processing on core 1 SRC for MTL
"cavs-nocodec\;sof-mtl-nocodec-dp-core-test\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
Expand Down
Loading