diff --git a/app/overlays/mtl/dts_overlay.conf b/app/overlays/mtl/dts_overlay.conf new file mode 100644 index 000000000000..0160eaea199a --- /dev/null +++ b/app/overlays/mtl/dts_overlay.conf @@ -0,0 +1,3 @@ +CONFIG_COMP_IIR=y +CONFIG_COMP_MODULE_ADAPTER=y +CONFIG_DTS_CODEC=y diff --git a/src/audio/module_adapter/module/dts/dts.c b/src/audio/module_adapter/module/dts/dts.c index 01eb8063e70d..78ca727b0a5c 100644 --- a/src/audio/module_adapter/module/dts/dts.c +++ b/src/audio/module_adapter/module/dts/dts.c @@ -9,6 +9,8 @@ #include +LOG_MODULE_REGISTER(dts, CONFIG_SOF_LOG_LEVEL); + /* d95fc34f-370f-4ac7-bc86-bfdc5be241e6 */ DECLARE_SOF_RT_UUID("dts_codec", dts_uuid, 0xd95fc34f, 0x370f, 0x4ac7, 0xbc, 0x86, 0xbf, 0xdc, 0x5b, 0xe2, 0x41, 0xe6); @@ -425,13 +427,25 @@ dts_codec_set_configuration(struct processing_module *mod, uint32_t config_id, ret = module_set_configuration(mod, config_id, pos, data_offset_size, fragment, fragment_size, response, response_size); - if (ret < 0) + if (ret < 0) { + comp_err(dev, "dts_codec_set_configuration(): error %x from module_set_configuration()", + ret); return ret; + } - /* return if more fragments are expected or if the module is not prepared */ - if ((pos != MODULE_CFG_FRAGMENT_LAST && pos != MODULE_CFG_FRAGMENT_SINGLE) || - md->state < MODULE_INITIALIZED) + /* return if more fragments are expected */ + if (pos != MODULE_CFG_FRAGMENT_LAST && pos != MODULE_CFG_FRAGMENT_SINGLE) { + comp_err(dev, "dts_codec_set_configuration(): pos %d error", pos); return 0; + } + +#if CONFIG_IPC_MAJOR_3 + // return if the module is not prepared + if (md->state < MODULE_INITIALIZED) { + comp_err(dev, "dts_codec_set_configuration(): state %d error", md->state); + return 0; + } +#endif /* whole configuration received, apply it now */ ret = dts_codec_apply_config(mod); diff --git a/src/include/sof/audio/component.h b/src/include/sof/audio/component.h index 4a24d08ffb28..6a2925e31675 100644 --- a/src/include/sof/audio/component.h +++ b/src/include/sof/audio/component.h @@ -718,6 +718,7 @@ void sys_comp_module_crossover_interface_init(void); void sys_comp_module_dcblock_interface_init(void); void sys_comp_module_demux_interface_init(void); void sys_comp_module_drc_interface_init(void); +void sys_comp_module_dts_interface_init(void); void sys_comp_module_eq_fir_interface_init(void); void sys_comp_module_eq_iir_interface_init(void); void sys_comp_module_mfcc_interface_init(void); diff --git a/src/include/sof/audio/dts/DtsSofInterfaceVersion.h b/src/include/sof/audio/dts/DtsSofInterfaceVersion.h index 05ab1ac63eb0..553537a2c8cf 100644 --- a/src/include/sof/audio/dts/DtsSofInterfaceVersion.h +++ b/src/include/sof/audio/dts/DtsSofInterfaceVersion.h @@ -8,10 +8,10 @@ #define DTS_SOF_INTERFACE_PRODUCT_NAME "DtsSofInterface" #define DTS_SOF_INTERFACE_PRODUCT_VERSION_MAJOR 1 -#define DTS_SOF_INTERFACE_PRODUCT_VERSION_MINOR 0 -#define DTS_SOF_INTERFACE_PRODUCT_VERSION_PATCH 7 +#define DTS_SOF_INTERFACE_PRODUCT_VERSION_MINOR 1 +#define DTS_SOF_INTERFACE_PRODUCT_VERSION_PATCH 3 #define DTS_SOF_INTERFACE_PRODUCT_VERSION_BUILD 0 -#define DTS_SOF_INTERFACE_PRODUCT_VERSION_EXTRA "Dev" +#define DTS_SOF_INTERFACE_PRODUCT_VERSION_EXTRA "RC2" #if defined(__cplusplus) extern "C" { diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 7e2b9c46055b..4737f97dcf5c 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -711,10 +711,15 @@ zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_HOTWORD_DETECT zephyr_library_sources_ifdef(CONFIG_DTS_CODEC ${SOF_AUDIO_PATH}/module_adapter/module/dts/dts.c ) - -zephyr_library_sources_ifdef(CONFIG_DTS_CODEC_STUB - ${SOF_AUDIO_PATH}/module_adapter/module/dts/dts_stub.c -) +if (CONFIG_DTS_CODEC) + if (CONFIG_DTS_CODEC_STUB) + zephyr_library_sources( + ${SOF_AUDIO_PATH}/module_adapter/module/dts/dts_stub.c + ) + else() + zephyr_library_import(DtsCodec ${SOF_AUDIO_PATH}/module_adapter/lib/release/libdts-sof-interface-i32.a) + endif() +endif() zephyr_library_sources_ifdef(CONFIG_WAVES_CODEC ${SOF_AUDIO_PATH}/module_adapter/module/waves/waves.c