mirror of https://github.com/thesofproject/sof.git
google_ctc_aec: enable building as an llext module
Add support for LLEXT building to google_ctc_audio_processing. Only building in a stub configuration is supported, linking with a prebuilt library should be implemented separately. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
parent
2357c6dfb3
commit
095e2d674c
|
@ -8,3 +8,4 @@ CONFIG_COMP_SRC=m
|
|||
CONFIG_COMP_ASRC=m
|
||||
CONFIG_COMP_RTNR=m
|
||||
CONFIG_COMP_VOLUME=m
|
||||
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
|
||||
|
|
|
@ -8,3 +8,4 @@ CONFIG_COMP_SRC=m
|
|||
CONFIG_COMP_ASRC=m
|
||||
CONFIG_COMP_RTNR=m
|
||||
CONFIG_COMP_VOLUME=m
|
||||
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
|
||||
|
|
|
@ -89,7 +89,7 @@ config GOOGLE_RTC_AUDIO_PROCESSING_MOCK
|
|||
endif # COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
|
||||
config COMP_GOOGLE_CTC_AUDIO_PROCESSING
|
||||
bool "Google Crosstalk Cancellation Audio processing"
|
||||
tristate "Google Crosstalk Cancellation Audio processing"
|
||||
select COMP_BLOB
|
||||
select GOOGLE_CTC_AUDIO_PROCESSING_MOCK if COMP_STUBS
|
||||
select STATIC_INIT_GNU if ZEPHYR_SOF_MODULE
|
||||
|
|
|
@ -348,7 +348,6 @@ static int ctc_prepare(struct processing_module *mod,
|
|||
struct google_ctc_audio_processing_comp_data *cd = module_get_private_data(mod);
|
||||
struct comp_dev *dev = mod->dev;
|
||||
struct comp_buffer *source;
|
||||
enum sof_ipc_frame fmt;
|
||||
int num_channels;
|
||||
uint8_t *config;
|
||||
int config_size;
|
||||
|
@ -459,3 +458,23 @@ DECLARE_MODULE_ADAPTER(google_ctc_audio_processing_interface,
|
|||
google_ctc_audio_processing_uuid, google_ctc_audio_processing_tr);
|
||||
SOF_MODULE_INIT(google_ctc_audio_processing,
|
||||
sys_comp_module_google_ctc_audio_processing_interface_init);
|
||||
|
||||
#if CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING_MODULE
|
||||
/* modular: llext dynamic link */
|
||||
|
||||
#include <module/module/api_ver.h>
|
||||
#include <module/module/llext.h>
|
||||
#include <rimage/sof/user/manifest.h>
|
||||
|
||||
#define UUID_GOOGLE_CTC 0xBC, 0x1B, 0x0E, 0xBF, 0x6A, 0xDC, 0xFE, 0x45, 0x90, 0xBC, \
|
||||
0x25, 0x54, 0xCB, 0x13, 0x7A, 0xB4
|
||||
|
||||
SOF_LLEXT_MOD_ENTRY(google_ctc_audio_processing, &google_ctc_audio_processing_interface);
|
||||
|
||||
static const struct sof_man_module_manifest mod_manifest __section(".module") __used =
|
||||
SOF_LLEXT_MODULE_MANIFEST("CTC", google_ctc_audio_processing_llext_entry,
|
||||
1, UUID_GOOGLE_CTC, 40);
|
||||
|
||||
SOF_LLEXT_BUILDINFO;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef LOAD_TYPE
|
||||
#define LOAD_TYPE "0"
|
||||
#endif
|
||||
|
||||
REM # CTC module config
|
||||
[[module.entry]]
|
||||
name = "CTC"
|
||||
|
@ -5,7 +9,7 @@
|
|||
affinity_mask = "0x1"
|
||||
instance_count = "40"
|
||||
domain_types = "0"
|
||||
load_type = "0"
|
||||
load_type = LOAD_TYPE
|
||||
module_type = "9"
|
||||
auto_start = "0"
|
||||
sched_caps = [1, 0x00008000]
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
//
|
||||
// Author: Eddy Hsu <eddyhsu@google.com>
|
||||
#include "google_ctc_audio_processing.h"
|
||||
#include "google_ctc_audio_processing_sof_message_reader.h"
|
||||
|
||||
#include <rtos/alloc.h>
|
||||
#include <stdint.h>
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Copyright (c) 2024 Intel Corporation.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if(CONFIG_GOOGLE_CTC_AUDIO_PROCESSING_MOCK)
|
||||
sof_llext_build("google_ctc_audio_processing"
|
||||
SOURCES ../google_ctc_audio_processing.c
|
||||
../google_ctc_audio_processing_ipc4.c
|
||||
../google_ctc_audio_processing_mock.c
|
||||
)
|
||||
target_include_directories(google_ctc_audio_processing_llext_lib PRIVATE
|
||||
"${sof_top_dir}/third_party/include"
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "Add library linking support in src/audio/google/llext_ctc/CMakeLists.txt")
|
||||
endif()
|
|
@ -0,0 +1,6 @@
|
|||
#include <tools/rimage/config/platform.toml>
|
||||
#define LOAD_TYPE "2"
|
||||
#include "../google_ctc_audio_processing.toml"
|
||||
|
||||
[module]
|
||||
count = __COUNTER__
|
|
@ -885,31 +885,30 @@ if(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING AND NOT CONFIG_GOOGLE_RTC_AUDIO_PROCE
|
|||
target_link_libraries(SOF INTERFACE gcc)
|
||||
endif()
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing.c
|
||||
)
|
||||
if(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING STREQUAL "m")
|
||||
add_subdirectory(${SOF_AUDIO_PATH}/google/llext_ctc
|
||||
${PROJECT_BINARY_DIR}/google_ctc_audio_processing_llext)
|
||||
add_dependencies(app google_ctc_audio_processing)
|
||||
elseif(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING)
|
||||
zephyr_library_sources(
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing.c
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing_${ipc_suffix}.c
|
||||
)
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_GOOGLE_CTC_AUDIO_PROCESSING_MOCK
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing_mock.c
|
||||
)
|
||||
zephyr_library_sources_ifdef(CONFIG_GOOGLE_CTC_AUDIO_PROCESSING_MOCK
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing_mock.c
|
||||
)
|
||||
|
||||
if(CONFIG_IPC_MAJOR_3)
|
||||
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing_ipc3.c)
|
||||
elseif(CONFIG_IPC_MAJOR_4)
|
||||
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING
|
||||
${SOF_AUDIO_PATH}/google/google_ctc_audio_processing_ipc4.c)
|
||||
endif()
|
||||
|
||||
if(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING AND NOT CONFIG_GOOGLE_CTC_AUDIO_PROCESSING_MOCK)
|
||||
zephyr_include_directories(../third_party/include)
|
||||
target_link_directories(SOF INTERFACE ../third_party/lib)
|
||||
target_link_libraries(SOF INTERFACE google_ctc_audio_processing)
|
||||
target_link_libraries(SOF INTERFACE c++)
|
||||
target_link_libraries(SOF INTERFACE c++abi)
|
||||
target_link_libraries(SOF INTERFACE m)
|
||||
target_link_libraries(SOF INTERFACE c)
|
||||
target_link_libraries(SOF INTERFACE gcc)
|
||||
if(NOT CONFIG_GOOGLE_CTC_AUDIO_PROCESSING_MOCK)
|
||||
zephyr_include_directories(../third_party/include)
|
||||
target_link_directories(SOF INTERFACE ../third_party/lib)
|
||||
target_link_libraries(SOF INTERFACE google_ctc_audio_processing)
|
||||
target_link_libraries(SOF INTERFACE c++)
|
||||
target_link_libraries(SOF INTERFACE c++abi)
|
||||
target_link_libraries(SOF INTERFACE m)
|
||||
target_link_libraries(SOF INTERFACE c)
|
||||
target_link_libraries(SOF INTERFACE gcc)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_COMP_IGO_NR
|
||||
|
|
Loading…
Reference in New Issue