Skip to content

Commit e07541c

Browse files
committed
multiband_drc: enable building as an llext module
Add support for LLEXT building to multiband_drc. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
1 parent e983c6d commit e07541c

8 files changed

Lines changed: 53 additions & 9 deletions

File tree

app/boards/intel_adsp_ace15_mtpm.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ CONFIG_COMP_DRC=m
99
CONFIG_COMP_CROSSOVER=m
1010
CONFIG_COMP_DCBLOCK=m
1111
CONFIG_COMP_SEL=m
12-
CONFIG_COMP_MULTIBAND_DRC=y
12+
CONFIG_COMP_MULTIBAND_DRC=m
1313
CONFIG_COMP_MFCC=y
1414

1515
# power settings

app/boards/intel_adsp_ace20_lnl.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ CONFIG_COMP_DRC=m
88
CONFIG_COMP_CROSSOVER=m
99
CONFIG_COMP_DCBLOCK=m
1010
CONFIG_COMP_SEL=m
11+
CONFIG_COMP_MULTIBAND_DRC=m
1112

1213
# power settings
1314
CONFIG_PM=y

src/audio/multiband_drc/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# SPDX-License-Identifier: BSD-3-Clause
22

33
config COMP_MULTIBAND_DRC
4-
depends on COMP_IIR && COMP_CROSSOVER && COMP_DRC = y
5-
bool "Multiband Dynamic Range Compressor component"
4+
depends on COMP_IIR && COMP_CROSSOVER && COMP_DRC
5+
tristate "Multiband Dynamic Range Compressor component"
66
select CORDIC_FIXED
77
select COMP_BLOB
88
default n
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2024 Intel Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
sof_llext_build("multiband_drc"
5+
SOURCES ../multiband_drc.c
6+
../multiband_drc_generic.c
7+
../multiband_drc_ipc4.c
8+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include <tools/rimage/config/platform.toml>
2+
#define LOAD_TYPE "2"
3+
#include "../multiband_drc.toml"
4+
5+
[module]
6+
count = __COUNTER__

src/audio/multiband_drc/multiband_drc.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,3 +419,22 @@ static const struct module_interface multiband_drc_interface = {
419419

420420
DECLARE_MODULE_ADAPTER(multiband_drc_interface, multiband_drc_uuid, multiband_drc_tr);
421421
SOF_MODULE_INIT(multiband_drc, sys_comp_module_multiband_drc_interface_init);
422+
423+
#if CONFIG_COMP_MULTIBAND_DRC_MODULE
424+
/* modular: llext dynamic link */
425+
426+
#include <module/module/api_ver.h>
427+
#include <module/module/llext.h>
428+
#include <rimage/sof/user/manifest.h>
429+
430+
#define UUID_MULTIBAND_DRC 0x56, 0x22, 0x9F, 0x0D, 0x4F, 0x8E, 0xB3, 0x47, 0x48, 0x84, \
431+
0x23, 0x9A, 0x33, 0x4F, 0x11, 0x91
432+
433+
SOF_LLEXT_MOD_ENTRY(multiband_drc, &multiband_drc_interface);
434+
435+
static const struct sof_man_module_manifest mod_manifest __section(".module") __used =
436+
SOF_LLEXT_MODULE_MANIFEST("MB_DRC", multiband_drc_llext_entry, 1, UUID_MULTIBAND_DRC, 40);
437+
438+
SOF_LLEXT_BUILDINFO;
439+
440+
#endif

src/audio/multiband_drc/multiband_drc.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
#ifndef LOAD_TYPE
2+
#define LOAD_TYPE "0"
3+
#endif
4+
15
REM # Multiband-DRC module config
26
[[module.entry]]
37
name = "MB_DRC"
48
uuid = "0D9F2256-8E4F-47B3-8448-239A334F1191"
59
affinity_mask = "0x1"
610
instance_count = "40"
711
domain_types = "0"
8-
load_type = "0"
12+
load_type = LOAD_TYPE
913
module_type = "9"
1014
auto_start = "0"
1115
sched_caps = [1, 0x00008000]

zephyr/CMakeLists.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -844,11 +844,17 @@ if(NOT CONFIG_COMP_DRC STREQUAL "n")
844844
)
845845
endif()
846846

847-
zephyr_library_sources_ifdef(CONFIG_COMP_MULTIBAND_DRC
848-
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc.c
849-
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_generic.c
850-
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_${ipc_suffix}.c
851-
)
847+
if(CONFIG_COMP_MULTIBAND_DRC STREQUAL "m")
848+
add_subdirectory(${SOF_AUDIO_PATH}/multiband_drc/llext
849+
${PROJECT_BINARY_DIR}/multiband_drc_llext)
850+
add_dependencies(app multiband_drc)
851+
elseif(CONFIG_COMP_MULTIBAND_DRC)
852+
zephyr_library_sources_ifdef(CONFIG_COMP_MULTIBAND_DRC
853+
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc.c
854+
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_generic.c
855+
${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_${ipc_suffix}.c
856+
)
857+
endif()
852858

853859
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING
854860
${SOF_AUDIO_PATH}/google/google_rtc_audio_processing.c

0 commit comments

Comments
 (0)