From 0eaa041bb07b601490d24516e5d643321d2b96ba Mon Sep 17 00:00:00 2001 From: Wojciech Jablonski Date: Wed, 25 Feb 2026 16:26:19 +0100 Subject: [PATCH] lib-manager: fix lib id packing Function lib_manager_get_library_manifest expects a full module identifier consisting of library ID and module index packed together as a parameter. There are some incorrect calls to the function where only library index is provided. This change fixes those incorrect calls. Signed-off-by: Wojciech Jablonski --- src/audio/base_fw.c | 2 +- src/debug/telemetry/performance_monitor.c | 2 +- src/include/sof/lib_manager.h | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index 17c86fdb1df3..2ee03facb319 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -410,7 +410,7 @@ __cold static int basefw_libraries_info_get(uint32_t *data_offset, char *data) desc = basefw_vendor_get_manifest(); } else { #if CONFIG_LIBRARY_MANAGER - desc = (struct sof_man_fw_desc *)lib_manager_get_library_manifest(lib_id); + desc = lib_manager_get_library_manifest(LIB_MANAGER_PACK_LIB_ID(lib_id)); #else desc = NULL; #endif diff --git a/src/debug/telemetry/performance_monitor.c b/src/debug/telemetry/performance_monitor.c index cd81781a6edc..250102edf5e1 100644 --- a/src/debug/telemetry/performance_monitor.c +++ b/src/debug/telemetry/performance_monitor.c @@ -344,7 +344,7 @@ int enable_performance_counters(void) desc = basefw_vendor_get_manifest(); } else { #if CONFIG_LIBRARY_MANAGER - desc = (struct sof_man_fw_desc *)lib_manager_get_library_manifest(lib_id); + desc = lib_manager_get_library_manifest(LIB_MANAGER_PACK_LIB_ID(lib_id)); #else desc = NULL; #endif diff --git a/src/include/sof/lib_manager.h b/src/include/sof/lib_manager.h index f1ead3028984..d96171ac9fd6 100644 --- a/src/include/sof/lib_manager.h +++ b/src/include/sof/lib_manager.h @@ -77,6 +77,7 @@ #define LIB_MANAGER_GET_LIB_ID(module_id) (((module_id) & 0xF000) >> LIB_MANAGER_LIB_ID_SHIFT) #define LIB_MANAGER_GET_MODULE_INDEX(module_id) ((module_id) & 0xFFF) +#define LIB_MANAGER_PACK_LIB_ID(lib_index) (((lib_index) << LIB_MANAGER_LIB_ID_SHIFT) & 0xF000) #ifdef CONFIG_LIBRARY_MANAGER struct ipc_lib_msg {