diff --git a/CMakeLists.txt b/CMakeLists.txt index d0d22e69..a4f50689 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,8 +18,12 @@ cmake_minimum_required(VERSION 2.8) project(libcamhal) +option(BUILD_CAMHAL_PLUGIN "Build libcamhal as plugins" OFF) +option(BUILD_CAMHAL_ADAPTOR "Build hal_adaptor as libcamhal" OFF) -#---------------------------- Fold settings ---------------------------- +#------------------------- Global settings ------------------------- + +#------------------------- folder settings ------------------------- # Source directories set(SRC_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/src) @@ -52,8 +56,8 @@ endif() #SUPPORT_LIVE_TUNING # ia_cipr is only used by psysprocessor if (USE_PG_LITE_PIPE) -set(IA_CIPR_DIR ${MODULES_DIR}/ia_cipr) -set(MODULE_IA_CSS_DIR ${MODULES_DIR}/ia_css) + set(IA_CIPR_DIR ${MODULES_DIR}/ia_cipr) + set(MODULE_IA_CSS_DIR ${MODULES_DIR}/ia_css) endif() #USE_PG_LITE_PIPE # CMake module directory @@ -65,20 +69,25 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}" CACHE PATH "Target location for install command." FORCE) endif() -message(STATUS "install prefix: " ${CMAKE_INSTALL_PREFIX}) - -if (UPSTREAM_CODE) - add_compile_definitions(IPU6_UPSTREAM=1) -else() - add_compile_definitions(IPU6_UPSTREAM=0) -endif() - -#------------------------- Compilation settings ------------------------- +#------------------------- compile and link options ------------------------- include(GNUInstallDirs) +# code coverage. +include(code-coverage) -# -fPIC in xos way -set(CMAKE_POSITION_INDEPENDENT_CODE ON) +message(STATUS "install prefix: " ${CMAKE_INSTALL_PREFIX}) + +set (CMAKE_CXX_STANDARD 11) +add_compile_options( + -Wall + -Werror + -fstack-protector + -fPIE + -fPIC + -DDCHECK_ALWAYS_ON + -Wformat + -Wformat-security +) include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG(-faligned-new COMPILER_SUPPORTS_ALIGNED_NEW) @@ -86,77 +95,8 @@ if (COMPILER_SUPPORTS_ALIGNED_NEW) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faligned-new") endif() -set (CMAKE_CXX_STANDARD 11) -add_compile_options(-Wall -Werror - -fstack-protector - -fPIE -fPIC - -DDCHECK_ALWAYS_ON - -Wformat -Wformat-security - ) -# code coverage. -include(code-coverage) - -add_definitions(-D__STDC_FORMAT_MACROS - -DHAVE_PTHREADS - -DHAVE_LINUX_OS - -DHAVE_IA_TYPES - -DHAVE_PRCTL - ) - -if (USE_PG_LITE_PIPE) - add_definitions(-DUSE_PG_LITE_PIPE) -endif() #USE_PG_LITE_PIPE - -if (CAL_BUILD) - message("Chrome enabled ") - add_definitions(-DCAL_BUILD) - add_definitions(-DDUMP_IMAGE) -else() - add_definitions(-DSUPPORT_MULTI_PROCESS) - add_definitions(-DLINUX_BUILD) -endif() #CAL_BUILD - -if (FACE_DETECTION) - add_definitions(-DFACE_DETECTION) -endif() #FACE_DETECTION - -# IPU6_FEATURE_S -if (IPU_VER MATCHES "ipu6") - add_definitions(-DIPU_SYSVER_IPU6) -endif() -# IPU6_FEATURE_E - -# IPU6_SE_FEATURE_S -if ("${IPU_VER}" STREQUAL "ipu6sepla") - add_definitions(-DIPU_SYSVER_ipu6v3) -endif() -# IPU6_SE_FEATURE_E - -if ("${IPU_VER}" STREQUAL "ipu6ep") - message(INFO "add definition -DIPU_SYSVER_ipu6v5 for ipu6ep") - add_definitions(-DIPU_SYSVER_ipu6v5) -endif() - -if ("${IPU_VER}" STREQUAL "ipu6epmtl") - message(INFO "add definition -DIPU_SYSVER_ipu6v6 for ipu6ep") - add_definitions(-DIPU_SYSVER_ipu6v6) -endif() - -include_directories(include - include/api include/utils - ${CMAKE_INSTALL_PREFIX}/include/ia_camera - ${CMAKE_INSTALL_PREFIX}/include/ - ${CMAKE_CURRENT_LIST_DIR} - src - src/v4l2 src/core src/metadata - src/platformdata src/platformdata/gc - src/3a src/3a/intel3a src/3a/external - src/fd src/scheduler - src/core/psysprocessor - src/image_process - ) - -set(LIBCAMHAL_LD_FLAGS "-fPIE -fPIC -Wformat -Wformat-security -Wl,-z,relro -Wl,-z,now") +set (THREADS_PREFER_PTHREAD_FLAG ON) +find_package (Threads REQUIRED) # check if _FORTIFY_SOURCE is default defined with -O include(CheckFortifyLevel) @@ -167,17 +107,94 @@ if(FORTIFY_SOURCE_VALUE) else() message(STATUS "_FORTIFY_SOURCE is not defined or could not be determined.") add_compile_options(-D_FORTIFY_SOURCE=2) - set(LIBCAMHAL_LD_FLAGS "${LIBCAMHAL_LD_FLAGS} -D_FORTIFY_SOURCE=2") message(STATUS "define _FORTIFY_SOURCE=2") endif() -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LIBCAMHAL_LD_FLAGS}") +add_link_options( + -fPIE + -fPIC + -Wformat + -Wformat-security + -Wl,-z,relro + -Wl,-z,now + -Wl,--no-as-needed + -Wl,--no-undefined +) + +# -fPIC in xos way +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +#------------------- common definitions, includes and link -------------------- + +add_definitions(-D__STDC_FORMAT_MACROS -DHAVE_PTHREADS -DHAVE_LINUX_OS -DHAVE_IA_TYPES -DHAVE_PRCTL) + +include_directories( + include + include/api include/utils + ${CMAKE_INSTALL_PREFIX}/include/ia_camera + ${CMAKE_INSTALL_PREFIX}/include/ + ${CMAKE_CURRENT_LIST_DIR} + src + src/v4l2 src/core src/metadata + src/platformdata src/platformdata/gc + src/3a src/3a/intel3a src/3a/external + src/fd src/scheduler + src/core/psysprocessor + src/image_process +) + +set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} expat rt) add_subdirectory(src) add_subdirectory(modules) -# Set source files +if (USE_PG_LITE_PIPE) + add_definitions(-DUSE_PG_LITE_PIPE) +endif() #USE_PG_LITE_PIPE + + set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${IIO_SRCS}) + +if (SUPPORT_LIVE_TUNING) + include_directories(modules/livetune) + set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${LIVE_TUNING_SRCS}) +endif() #SUPPORT_LIVE_TUNING + +if(FACE_DETECTION) + add_definitions(-DFACE_DETECTION) + set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${FACE_DETECTION_SRCS}) + set(LIBCAMHAL_LINK_LIBS + ${LIBCAMHAL_LINK_LIBS} + pvl_eye_detection + pvl_face_detection + pvl_mouth_detection + ${WORK_DIR_TMP}/src/fd/libface_detection.a + ) +endif() #FACE_DETECTION + +if(ENABLE_SANDBOXING) + find_package(LIBMOJO) + find_package(LIBCAMERA_IPC) + find_package(LIBCAB) + add_definitions(-DENABLE_SANDBOXING) + set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${SANDBOXING_CLIENT_SRCS}) + include_directories( + ${USR_INCLUDE_HEADER}/base-${BASEVER} + ${LIBMOJO_INCLUDE_DIRS} + ${LIBCAMERA_IPC_INCLUDE_DIRS} + ${LIBCAB_INCLUDE_DIRS} + ) + link_directories( + ${CMAKE_PREFIX_PATH} + ${LIBMOJO_LIBS} + ${LIBCAMERA_IPC_LIBS} + ${LIBCAB_LIBS} + ) + set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${LIBCAB_LIBS} ${LIBMOJO_LIBS} ${LIBCAMERA_IPC_LIBS} ${CMAKE_PREFIX_PATH}/librt.a) +endif() #ENABLE_SANDBOXING + if (CAL_BUILD) + message("Chrome enabled ") + add_definitions(-DCAL_BUILD -DDUMP_IMAGE) if (SW_JPEG_ENCODE) add_definitions(-DSW_JPEG_ENCODE) include_directories(src/jpeg/sw) @@ -193,40 +210,51 @@ if (CAL_BUILD) add_subdirectory(aal) - set(LIBCAMHAL_SRCS - ${LIBCAMHAL_SRCS} - ${MEMORY_SRCS} - ${AAL_SRCS} - ${JPEG_SRCS} - ) + set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${MEMORY_SRCS} ${AAL_SRCS} ${JPEG_SRCS}) include_directories(include include/api include/utils include/linux - ${USR_INCLUDE_HEADER}/android/system/core/include/ - ${USR_INCLUDE_HEADER}/ia_imaging - ${USR_INCLUDE_HEADER}/usr/lib${IPU_VER} - ${USR_INCLUDE_HEADER}/android/hardware/libhardware/include/ - aal aal/chrome src/iutils src/jpeg - modules/memory modules/memory/chrome + ${USR_INCLUDE_HEADER}/android/system/core/include/ + ${USR_INCLUDE_HEADER}/ia_imaging + ${USR_INCLUDE_HEADER}/usr/lib${IPU_VER} + ${USR_INCLUDE_HEADER}/android/hardware/libhardware/include/ + aal aal/chrome src/iutils src/jpeg + modules/memory modules/memory/chrome + ) + find_package(LIBCAMERA_CLIENT) + find_package(LIBCAMERA_COMMON) + find_package(LIBCAMERA_METADATA) + find_package(LIBCAMERA_V4L2_DEVICE) + find_package(LIBSYNC) + find_package(LIBCBM) + + include_directories(${LIBCAMERA_CLIENT_INCLUDE_DIRS} ${LIBCAMERA_COMMON_INCLUDE_DIRS} + ${LIBCAMERA_METADATA_INCLUDE_DIRS} ${LIBCAMERA_V4L2_DEVICE_INCLUDE_DIRS} + ${LIBSYNC_INCLUDE_DIRS} + ${LIBCBM_INCLUDE_DIRS} ) -endif() #CAL_BUILD + link_directories(${CMAKE_PREFIX_PATH} ${LIBCAMERA_CLIENT_LIBS} ${LIBCAMERA_METADATA_LIBS} + ${LIBCAMERA_COMMON_LIBS} ${LIBSYNC_LIBS} + ${LIBCBM_LIBS} + ) -if (SUPPORT_LIVE_TUNING) - set(LIBCAMHAL_SRCS ${LIVE_TUNING_SRCS}) - include_directories(modules/livetune) -endif() #SUPPORT_LIVE_TUNING + set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${LIBCAMERA_CLIENT_LIBS} ${LIBCAMERA_COMMON_LIBS} + ${LIBCAMERA_METADATA_LIBS} ${LIBCAMERA_V4L2_DEVICE_LIBS} + ${LIBSYNC_LIBS} jpeg ${CMAKE_PREFIX_PATH}/libyuv.pic.a + ${LIBCBM_LIBS} camera_v4l2_device + ) +endif() #CAL_BUILD -if (USE_PG_LITE_PIPE) -add_subdirectory(${MODULE_IA_CSS_DIR}) -include_directories(${MODULE_IA_CSS_HEADER_INCLUDE_DIR}) -set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${MODULE_IA_CSS_SRC}) - -# suppress modules/ia_css .c code compiling error -include(CheckCCompilerFlag) -CHECK_C_COMPILER_FLAG("-Wno-error=unused-but-set-variable" COMPILER_SUPPORTS_NO_UNUSED_BUT_SET_VAR) -if (COMPILER_SUPPORTS_NO_UNUSED_BUT_SET_VAR) - set_source_files_properties(${MODULE_IA_CSS_SRC} PROPERTIES COMPILE_FLAGS - "-Wno-error=unused-but-set-variable ${CMAKE_C_FLAGS}") +if (NOT CAL_BUILD) + message("Linux build") + add_definitions(-DSUPPORT_MULTI_PROCESS) + add_definitions(-DLINUX_BUILD) + include_directories(${MODULES_DIR}/v4l2) + find_package(LIBDRM) + if(LIBDRM_FOUND AND ("${LIBDRM_VERSION}" VERSION_GREATER_EQUAL 2.4.114)) + include_directories(${LIBDRM_INCLUDE_DIRS}) + set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${LIBDRM_LIBS}) + add_definitions(-DLIBDRM_SUPPORT_MMAP_OFFSET) + endif() endif() -endif() #USE_PG_LITE_PIPE set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} @@ -246,208 +274,156 @@ set(LIBCAMHAL_SRCS ${MODULES_DIR}/ia_cipr/src/Event.cpp ${MODULES_DIR}/ia_cipr/src/Command.cpp ${MODULES_DIR}/ia_cipr/src/Utils.cpp - ) +) -if(FACE_DETECTION) -set(LIBCAMHAL_SRCS - ${LIBCAMHAL_SRCS} - ${FACE_DETECTION_SRCS} - ) -endif() #FACE_DETECTION +#------------------------- Target settings ------------------------- -if(ENABLE_SANDBOXING) -set(LIBCAMHAL_SRCS - ${LIBCAMHAL_SRCS} - ${SANDBOXING_CLIENT_SRCS} - ) -endif() #ENABLE_SANDBOXING - - set(LIBCAMHAL_SRCS ${LIBCAMHAL_SRCS} ${IIO_SRCS}) +if (NOT IPU_VERSIONS) + set(IPU_VERSIONS ${IPU_VER}) +endif() -# Add libcamhal using the specified sources -if (${CMAKE_VERSION} VERSION_LESS 3.11) - add_library(camhal SHARED ${LIBCAMHAL_SRCS}) -else() - add_library(camhal SHARED $) +if (BUILD_CAMHAL_ADAPTOR) + add_subdirectory(src/hal/hal_adaptor) + if (NOT BUILD_CAMHAL_PLUGIN) + message(NOTICE "Will not build libcamhal plugins") + set(IPU_VERSIONS "") + endif() endif() -set_target_properties(camhal PROPERTIES SOVERSION 0) -set_target_properties(camhal PROPERTIES VERSION "0.0.0") -add_library(camhal_static STATIC ${LIBCAMHAL_SRCS}) +# Add different targets according to array IPU_VERSIONS +foreach(IPU_VER ${IPU_VERSIONS}) -if (NOT CAL_BUILD AND (NOT "${CMAKE_INSTALL_SUB_PATH}" STREQUAL "")) - set(CMAKE_SKIP_RPATH TRUE) - set_target_properties(camhal PROPERTIES LINK_FLAGS - "-Wl,-rpath,/usr/lib/${CMAKE_INSTALL_SUB_PATH}") - add_compile_definitions(SUB_CONFIG_PATH="${CMAKE_INSTALL_SUB_PATH}") +if (BUILD_CAMHAL_PLUGIN) + set(TARGET_SUFFIX "-${IPU_VER}") endif() -set_target_properties(camhal_static PROPERTIES OUTPUT_NAME "camhal") -#---------------------------- Link settings ---------------------------- -target_link_libraries(camhal ${CMAKE_DL_LIBS}) -target_link_libraries(camhal_static ${CMAKE_DL_LIBS}) +set(TARGET_INCLUDE "") +set(TARGET_DEFINITIONS "") +set(TARGET_SRCS "") +set(TARGET_LINK_LIBS "") -set (THREADS_PREFER_PTHREAD_FLAG ON) -find_package (Threads REQUIRED) -target_link_libraries(camhal ${CMAKE_THREAD_LIBS_INIT}) -target_link_libraries(camhal_static ${CMAKE_THREAD_LIBS_INIT}) +if (USE_PG_LITE_PIPE) + add_subdirectory(modules/ia_css modules/ia_css${TARGET_SUFFIX}) + set(TARGET_INCLUDE ${TARGET_INCLUDE} ${MODULE_IA_CSS_HEADER_INCLUDE_DIR}) + set(TARGET_SRCS ${TARGET_SRCS} ${MODULE_IA_CSS_SRC}) +endif() #USE_PG_LITE_PIPE -target_link_libraries(camhal expat rt) -target_link_libraries(camhal_static expat rt) +if (IPU_VER MATCHES "ipu6") + message(STATUS "add definition -DIPU_SYSVER_IPU6 for ${IPU_VER}") + set(TARGET_DEFINITIONS ${TARGET_DEFINITIONS} -DIPU_SYSVER_IPU6) + if (IPU_VER STREQUAL "ipu6sepla") + message(STATUS "add definition -DIPU_SYSVER_ipu6v3 for ${IPU_VER}") + set(TARGET_DEFINITIONS ${TARGET_DEFINITIONS} -DIPU_SYSVER_ipu6v3) + elseif (IPU_VER STREQUAL "ipu6ep") + message(STATUS "add definition -DIPU_SYSVER_ipu6v5 for ${IPU_VER}") + set(TARGET_DEFINITIONS ${TARGET_DEFINITIONS} -DIPU_SYSVER_ipu6v5) + elseif (IPU_VER STREQUAL "ipu6epmtl") + message(STATUS "add definition -DIPU_SYSVER_ipu6v6 for ${IPU_VER}") + set(TARGET_DEFINITIONS ${TARGET_DEFINITIONS} -DIPU_SYSVER_ipu6v6) + endif() +endif() -if (CAL_BUILD) - target_link_libraries(camhal camera_v4l2_device) - target_link_libraries(camhal_static camera_v4l2_device) +if (NOT CAL_BUILD) + set(TARGET_DEFINITIONS ${TARGET_DEFINITIONS} "-DCAMERA_DEFAULT_CFG_PATH=\"${CMAKE_INSTALL_FULL_SYSCONFDIR}/camera/${IPU_VER}/\"") endif() # Link libraries, the building will be interrupted if libs/includes not found - # Link ia_imaging find_package(IA_IMAGING) - include_directories(${IA_IMAGING_INCLUDE_DIRS}) - target_link_libraries(camhal ${IA_IMAGING_LIBS}) - target_link_libraries(camhal_static ${IA_IMAGING_LIBS}) - -if(USE_PG_LITE_PIPE) - find_package(LIBGCSS) - include_directories(${LIBGCSS_INCLUDE_DIRS}) - target_link_libraries(camhal ${LIBGCSS_LIBS}) - target_link_libraries(camhal_static ${LIBGCSS_LIBS}) -else() - # Link libiacss - find_package(LIBIACSS) - include_directories(${LIBIACSS_INCLUDE_DIRS}) - target_link_libraries(camhal ${LIBIACSS_LIBS}) - target_link_libraries(camhal_static ${LIBIACSS_LIBS}) -endif() - -find_package(LIBDRM) -if(LIBDRM_FOUND AND ("${LIBDRM_VERSION}" VERSION_GREATER_EQUAL 2.4.114)) -include_directories(${LIBDRM_INCLUDE_DIRS}) -target_link_libraries(camhal ${LIBDRM_LIBS}) -target_link_libraries(camhal_static ${LIBDRM_LIBS}) -add_definitions(-DLIBDRM_SUPPORT_MMAP_OFFSET) -endif() + set(TARGET_INCLUDE ${TARGET_INCLUDE} ${IA_IMAGING${TARGET_SUFFIX}_INCLUDE_DIRS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${IA_IMAGING${TARGET_SUFFIX}_LIBS}) + + if(USE_PG_LITE_PIPE) + find_package(LIBGCSS) + set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBGCSS${TARGET_SUFFIX}_INCLUDE_DIRS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBGCSS${TARGET_SUFFIX}_LIBS}) + # Include libipu(4) headers + find_package(LIBIPU) + set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBIPU${TARGET_SUFFIX}_INCLUDE_DIRS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIPU${TARGET_SUFFIX}_LIBS}) + else() + # Link libiacss + find_package(LIBIACSS) + set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBIACSS${TARGET_SUFFIX}_INCLUDE_DIRS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIACSS${TARGET_SUFFIX}_LIBS}) + endif() -# Include libipu(4) headers -find_package(LIBIPU) -include_directories(${LIBIPU_INCLUDE_DIRS}) +#--------------------------- Add libcamhal target --------------------------- -if (USE_PG_LITE_PIPE) - target_link_libraries(camhal ${IPU_LIB}) - target_link_libraries(camhal_static ${IPU_LIB}) +if (BUILD_CAMHAL_PLUGIN) + set(CAMHAL_TARGET ${IPU_VER}) + set(CAMHAL_STATIC_TARGET ${IPU_VER}_static) +else() + set(CAMHAL_TARGET camhal) + set(CAMHAL_STATIC_TARGET camhal_static) endif() -if (CAL_BUILD) - find_package(LIBCAMERA_CLIENT) - find_package(LIBCAMERA_COMMON) - find_package(LIBCAMERA_METADATA) - find_package(LIBCAMERA_V4L2_DEVICE) - find_package(LIBSYNC) - find_package(LIBCBM) - - include_directories(${LIBCAMERA_CLIENT_INCLUDE_DIRS} ${LIBCAMERA_COMMON_INCLUDE_DIRS} - ${LIBCAMERA_METADATA_INCLUDE_DIRS} ${LIBCAMERA_V4L2_DEVICE_INCLUDE_DIRS} - ${LIBSYNC_INCLUDE_DIRS} - ${LIBCBM_INCLUDE_DIRS} - ) - link_directories(${CMAKE_PREFIX_PATH} ${LIBCAMERA_CLIENT_LIBS} ${LIBCAMERA_METADATA_LIBS} - ${LIBCAMERA_COMMON_LIBS} ${LIBSYNC_LIBS} - ${LIBCBM_LIBS} - ) - - target_link_libraries(camhal ${LIBCAMERA_CLIENT_LIBS} ${LIBCAMERA_COMMON_LIBS} - ${LIBCAMERA_METADATA_LIBS} ${LIBCAMERA_V4L2_DEVICE_LIBS} - ${LIBSYNC_LIBS} jpeg ${CMAKE_PREFIX_PATH}/libyuv.pic.a - ${LIBCBM_LIBS} - ) - target_link_libraries(camhal_static ${LIBCAMERA_CLIENT_LIBS} ${LIBCAMERA_COMMON_LIBS} - ${LIBCAMERA_METADATA_LIBS} ${LIBCAMERA_V4L2_DEVICE_LIBS} - ${LIBSYNC_LIBS} jpeg ${CMAKE_PREFIX_PATH}/libyuv.pic.a - ${LIBCBM_LIBS} - ) -endif() #CAL_BUILD +# Add libcamhal using the specified sources +add_library(${CAMHAL_STATIC_TARGET} STATIC ${LIBCAMHAL_SRCS} ${TARGET_SRCS}) -if (NOT CAL_BUILD) - include_directories(${MODULES_DIR}/v4l2) +if (${CMAKE_VERSION} VERSION_LESS 3.11) + add_library(${CAMHAL_TARGET} SHARED ${LIBCAMHAL_SRCS} ${TARGET_SRCS}) +else() + add_library(${CAMHAL_TARGET} SHARED $) endif() -if (FACE_DETECTION) - target_link_libraries(camhal pvl_eye_detection pvl_face_detection pvl_mouth_detection) - target_link_libraries(camhal_static pvl_eye_detection pvl_face_detection pvl_mouth_detection) - target_link_libraries(camhal ${WORK_DIR_TMP}/src/fd/libface_detection.a) - target_link_libraries(camhal_static ${WORK_DIR_TMP}/src/fd/libface_detection.a) +target_include_directories(${CAMHAL_STATIC_TARGET} PRIVATE ${TARGET_INCLUDE}) +target_include_directories(${CAMHAL_TARGET} PRIVATE ${TARGET_INCLUDE}) +target_compile_definitions(${CAMHAL_STATIC_TARGET} PRIVATE ${TARGET_DEFINITIONS}) +target_compile_definitions(${CAMHAL_TARGET} PRIVATE ${TARGET_DEFINITIONS}) +target_link_libraries(${CAMHAL_STATIC_TARGET} PRIVATE ${LIBCAMHAL_LINK_LIBS} ${TARGET_LINK_LIBS}) +target_link_libraries(${CAMHAL_TARGET} PRIVATE ${LIBCAMHAL_LINK_LIBS} ${TARGET_LINK_LIBS}) + +if (BUILD_CAMHAL_PLUGIN) + set_target_properties(${CAMHAL_STATIC_TARGET} PROPERTIES PREFIX "") + set_target_properties(${CAMHAL_TARGET} PROPERTIES PREFIX "") + set_target_properties(${CAMHAL_STATIC_TARGET} PROPERTIES OUTPUT_NAME ${IPU_VER}) + set_target_properties(${CAMHAL_TARGET} PROPERTIES OUTPUT_NAME ${IPU_VER}) +else() + set_target_properties(${CAMHAL_STATIC_TARGET} PROPERTIES OUTPUT_NAME ${CAMHAL_TARGET}) + set_target_properties(${CAMHAL_TARGET} PROPERTIES SOVERSION 0) + set_target_properties(${CAMHAL_TARGET} PROPERTIES VERSION "0.0.0") + set_target_properties(${CAMHAL_TARGET} PROPERTIES OUTPUT_NAME ${CAMHAL_TARGET}) endif() -if (ENABLE_SANDBOXING) - add_definitions(-DENABLE_SANDBOXING) - - find_package(LIBMOJO) - find_package(LIBCAMERA_IPC) - find_package(LIBCAB) - - include_directories(${USR_INCLUDE_HEADER}/base-${BASEVER}) - include_directories(${LIBMOJO_INCLUDE_DIRS}) - include_directories(${LIBCAMERA_IPC_INCLUDE_DIRS}) - include_directories(${LIBCAB_INCLUDE_DIRS}) - - link_directories(${CMAKE_PREFIX_PATH} - ${LIBMOJO_LIBS} - ${LIBCAMERA_IPC_LIBS} - ${LIBCAB_LIBS} - ) - - target_link_libraries(camhal ${LIBCAB_LIBS}) - target_link_libraries(camhal ${LIBMOJO_LIBS}) - target_link_libraries(camhal ${LIBCAMERA_IPC_LIBS}) - target_link_libraries(camhal ${CMAKE_PREFIX_PATH}/librt.a) - - target_link_libraries(camhal_static ${LIBCAB_LIBS}) - target_link_libraries(camhal_static ${LIBMOJO_LIBS}) - target_link_libraries(camhal_static ${LIBCAMERA_IPC_LIBS}) - target_link_libraries(camhal_static ${CMAKE_PREFIX_PATH}/librt.a) -endif() #ENABLE_SANDBOXING - #--------------------------- Install settings --------------------------- if (NOT CAL_BUILD) -# Install headers -if ("${CMAKE_INSTALL_SUB_PATH}" STREQUAL "") - install(DIRECTORY include/ DESTINATION usr/include/libcamhal) - if (SUPPORT_LIVE_TUNING) - install(FILES modules/livetune/LiveTuning.h DESTINATION usr/include/libcamhal/api) - endif() #SUPPORT_LIVE_TUNING -endif() - -# Install configure files, by default ipu4 is used -if(("${IPU_VER}" STREQUAL "") OR ("${IPU_VER}" STREQUAL "ipu4")) - message("Install camera configure files for ipu4") - install(DIRECTORY config/linux/ipu4/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/camera/${CMAKE_INSTALL_SUB_PATH}) -else() - message("Install camera configure files for " ${IPU_VER}) - if (UPSTREAM_CODE) - install(DIRECTORY config/linux/${IPU_VER}_upstream/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/camera/${CMAKE_INSTALL_SUB_PATH}) - else() - install(DIRECTORY config/linux/${IPU_VER}/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/camera/${CMAKE_INSTALL_SUB_PATH}) + if (NOT BUILD_CAMHAL_PLUGIN) + # Install headers + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libcamhal) + if (SUPPORT_LIVE_TUNING) + install(FILES modules/livetune/LiveTuning.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libcamhal/api) + endif() #SUPPORT_LIVE_TUNING endif() -endif() -# Install libraries -if (${CMAKE_VERSION} VERSION_LESS 3.11) -install(TARGETS camhal camhal_static - LIBRARY DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH} - ARCHIVE DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH} - ) -else() -install(TARGETS camhal camhal_static DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH}) -endif() + # Install configure files, by default ipu4 is used + message("Install camera configure files for ${IPU_VER}") + install(DIRECTORY config/linux/${IPU_VER}/ DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/camera/${IPU_VER}) -# Install package config file -configure_file(${PROJECT_SOURCE_DIR}/cmake/libcamhal.pc.cmakein - ${PROJECT_SOURCE_DIR}/libcamhal.pc @ONLY) -install(FILES libcamhal.pc - DESTINATION usr/${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}/pkgconfig) + # Install libraries + set(CAMHAL_TARGETS ${CAMHAL_TARGET} ${CAMHAL_STATIC_TARGET}) + if (BUILD_CAMHAL_PLUGIN) + set(CAMHAL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/libcamhal/plugins) + else() + set(CAMHAL_DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + if (${CMAKE_VERSION} VERSION_LESS 3.11) + install(TARGETS ${CAMHAL_TARGETS} + LIBRARY DESTINATION ${CAMHAL_DESTINATION} + ARCHIVE DESTINATION ${CAMHAL_DESTINATION}) + else() + install(TARGETS ${CAMHAL_TARGETS} DESTINATION ${CAMHAL_DESTINATION}) + endif() + if (NOT BUILD_CAMHAL_PLUGIN) + # Install package config file + configure_file(${PROJECT_SOURCE_DIR}/cmake/libcamhal.pc.cmakein + ${PROJECT_SOURCE_DIR}/libcamhal.pc @ONLY) + install(FILES libcamhal.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif() endif() #NOT CAL_BUILD +endforeach() #IPU_VERSIONS + set(CPACK_GENERATOR "RPM") include(CPack) diff --git a/README.md b/README.md index 6d6de147..c302be12 100644 --- a/README.md +++ b/README.md @@ -29,16 +29,15 @@ There are 4 repositories that provide the complete setup: # └── out ``` -2. In `work` folder, run `./build.sh`. Output binaries will be in `out/install`. (RPM build is not implemented yet) - Notice: To disable 'dma-drm', should remove '--enable-gstdrmformat=yes' in build.sh manually. - The featuer depends on 'gstreamer >= 1.23' and 'libva-drm'. +2. For example, in `work` folder, run `./build.sh -d --board ipu_mtl`. Output binaries will be in `out/ipu_mtl/install`. + Notice: Use `./build.sh --board ipu_mtl` to disable dma build. + The dma build depends on 'gstreamer >= 1.23' and 'libva-drm'. -3. Install contents in `out/install` to your `/usr`: +3. Install built out drivers in `out//install` to target: ```sh - sudo cp -r ./out/install/etc/* /etc/ - sudo cp -r ./out/install/include/* /usr/include/ - sudo cp -r ./out/install/lib/* /usr/lib/ - sudo cp -r ./out/install/usr/* /usr/ + cp -r ./out//install/etc* /etc/ + cp -r ./out//install/usr/include/* /usr/include/ + cp -r ./out//install/usr/lib/* /usr/lib/ ``` For more building details please reference the `build.sh`. diff --git a/build.sh b/build.sh index 38b04fa3..9789c825 100644 --- a/build.sh +++ b/build.sh @@ -14,30 +14,22 @@ function check_result() { function parse_argument() { export SOURCE_DIR=${PWD} - export INSTALL_DIR=${PWD}/out + export TARGET_BUILD_INSTALL_DIR=${PWD}/out export BOARD_LIST="ipu_tgl ipu_adl ipu_mtl" - export BUILD_RPM=ON + export BUILD_RPM=OFF + export ENABLE_DMA_DRM=OFF while true; do case $1 in - -s|--source) - export SOURCE_DIR=$2 - echo "$2" - shift - ;; - -i|--install) - export INSTALL_DIR=$2 - echo "$2" - shift - ;; --no-rpm) export BUILD_RPM=OFF ;; + -d|--dma) + export ENABLE_DMA_DRM=ON + ;; --board) - shift - export BOARD_LIST=$@ - echo "$$" - break + export BOARD_LIST=$2 + echo "$2" ;; -?*) echo "WARNING: not supported option: $1" @@ -51,8 +43,9 @@ function parse_argument() { echo "=========================== Build Config ============================" echo "SOURCE_DIR: $SOURCE_DIR" - echo "INSTALL_DIR: $INSTALL_DIR" + echo "INSTALL_DIR: $TARGET_BUILD_INSTALL_DIR" echo "BUILD_RPM: $BUILD_RPM" + echo "ENABLE_DMA_DRM: $ENABLE_DMA_DRM" echo "BOARD_LIST: $BOARD_LIST" echo "=====================================================================" } @@ -60,114 +53,117 @@ function parse_argument() { function print_helper() { echo echo "========================= Command Helper ============================" - echo "./build_release.sh -s source_dir -i install_dir --board target1 targert2 ..." + echo "==== disable dma ====" + echo "./build.sh --board target" + echo "==== enable dma ====" + echo "./build.sh -d --board target" echo "=====================================================================" echo } -standardize_pkg_config_path(){ - if [[ ! -f $1 ]]; then echo "file $1 not exsist."; exit 0; fi - sed -i '1c prefix=\/usr' $* -} - -function build_target() { +function build_libcamhal() { rm -fr build && mkdir -p build && cd build local target=$1 - export IPU_VERSION= + + rm -fr $TARGET_BUILD_INSTALL_DIR/$target && mkdir -p $TARGET_BUILD_INSTALL_DIR/$target + export BUILD_INSTALL_DIR=$TARGET_BUILD_INSTALL_DIR/$target/install + + export IPU_VERSIONS= if [ "$target" = "ipu_tgl" ]; then - IPU_VERSION=ipu6 + IPU_VERSIONS=ipu6 elif [ "$target" = "ipu_adl" ]; then - IPU_VERSION=ipu6ep + IPU_VERSIONS=ipu6ep elif [ "$target" = "ipu_mtl" ]; then - IPU_VERSION=ipu6epmtl + IPU_VERSIONS=ipu6epmtl else - echo "Error: unsupport the target name : $target" + echo "Error: doesn't support the target : $target" exit -1 fi # indicate the install folder of binary package - # export PKG_CONFIG_PATH=~/work/linux/camera_submit/camera/out/install/lib/$target/pkgconfig:$PKG_CONFIG_PATH - export PKG_CONFIG_PATH=/usr/lib/$target/pkgconfig:$PKG_CONFIG_PATH + sed -i 's|^prefix=.*|prefix='$BUILD_INSTALL_DIR/usr/'|' $BUILD_INSTALL_DIR/usr/lib/pkgconfig/*.pc command cmake -DCMAKE_BUILD_TYPE=Release \ - -DIPU_VER=$IPU_VERSION \ - -DBUILD_CAMHAL_TESTS=OFF \ + -DIPU_VERSIONS=$IPU_VERSIONS \ + -DBUILD_CAMHAL_TESTS=ON \ -DUSE_PG_LITE_PIPE=ON \ - -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/install \ - -DCMAKE_INSTALL_SUB_PATH=$target .. + -DUSE_STATIC_GRAPH=ON \ + -DUSE_STATIC_GRAPH_AUTOGEN=ON \ + -DCMAKE_C_FLAGS=-O2 \ + -DCMAKE_CXX_FLAGS=-O2 \ + -DBUILD_CAMHAL_ADAPTOR=ON \ + -DBUILD_CAMHAL_PLUGIN=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + .. # make and install make -j`nproc` check_result $? "$FUNCNAME: $target" - make install + make DESTDIR=$BUILD_INSTALL_DIR install check_result $? "$FUNCNAME: $target" - standardize_pkg_config_path ${INSTALL_DIR}/install/usr/lib/${target}/pkgconfig/libcamhal.pc + cd .. } -function build_hal() { +function build_libcamhal_target() { cd $SOURCE_DIR/ipu6-camera-hal for target in $BOARD_LIST do - build_target $target + build_libcamhal $target done } -function build_hal_adaptor() { - cd $SOURCE_DIR/ipu6-camera-hal/src/hal/hal_adaptor - rm -fr build && mkdir -p build && cd build - - command cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/install ../ - - # make and install - make -j - check_result $? $FUNCNAME - - make install - check_result $? $FUNCNAME - standardize_pkg_config_path ${INSTALL_DIR}/install/lib/pkgconfig/hal_adaptor.pc -} - function build_icamerasrc() { cd $SOURCE_DIR/icamerasrc/ - export CAMHAL_LIBS="-L$INSTALL_DIR/install/lib -lhal_adaptor" - export CAMHAL_CFLAGS="-I$INSTALL_DIR/install/include/hal_adaptor \ - -I$INSTALL_DIR/install/include/hal_adaptor/api \ - -I$INSTALL_DIR/install/include/hal_adaptor/utils \ - -I$INSTALL_DIR/install/include/hal_adaptor/linux" - export CHROME_SLIM_CAMHAL=ON - export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:${PKG_CONFIG_PATH}" + export DEFAULT_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" + export PKG_CONFIG_PATH=$DEFAULT_PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig:$BUILD_INSTALL_DIR/usr/lib/pkgconfig + + sed -i 's|^prefix=.*|prefix='$BUILD_INSTALL_DIR/usr/'|' $BUILD_INSTALL_DIR/usr/lib/pkgconfig/libcamhal.pc rm -fr config.h.in autom4te.cache/ aclocal.m4 *-libtool config.guess compile \ config.sub configure depcomp install-sh ltmain.sh m4 autoreconf --install - CFLAGS="-O2" CXXFLAGS="-O2" ./configure --with-haladaptor=yes --enable-gstdrmformat=yes ${CONFIGURE_FLAGS} \ - --prefix=$INSTALL_DIR/install DEFAULT_CAMERA=0 + + export CAMHAL_CFLAGS="-I$BUILD_INSTALL_DIR/usr/include/libcamhal \ + -I$BUILD_INSTALL_DIR/usr/include/libcamhal/api \ + -I$BUILD_INSTALL_DIR/usr/include/libcamhal/utils \ + -I$BUILD_INSTALL_DIR/usr/include/libcamhal/linux" + + export CHROME_SLIM_CAMHAL=ON + + local ENABLE_FEATURE_ARGS= + if [ "$ENABLE_DMA_DRM" = "ON" ]; then + ENABLE_FEATURE_ARGS+="--enable-gstdrmformat=yes " + fi + + CFLAGS="-O2" CXXFLAGS="-O2" ./configure --prefix=/usr DEFAULT_CAMERA=0 ${ENABLE_FEATURE_ARGS} check_result $? $FUNCNAME make clean make -j check_result $? $FUNCNAME - make install + make DESTDIR=$BUILD_INSTALL_DIR install check_result $? $FUNCNAME - find $INSTALL_DIR/install/ -name "*.la" -exec rm -f "{}" \; - standardize_pkg_config_path ${INSTALL_DIR}/install/lib/pkgconfig/libgsticamerasrc.pc + + find $BUILD_INSTALL_DIR -name "*.la" -exec rm -f "{}" \; } function main () { parse_argument $@ - if [ -z "$SOURCE_DIR" ] || [ -z "$INSTALL_DIR" ] || [ -z "$BOARD_LIST" ]; then + if [ -z "$SOURCE_DIR" ] || [ -z "$TARGET_BUILD_INSTALL_DIR" ] || [ -z "$BOARD_LIST" ]; then print_helper exit 1 fi - rm -fr $INSTALL_DIR/install $INSTALL_DIR/rpm && mkdir -p $INSTALL_DIR/install $INSTALL_DIR/rpm - build_hal - build_hal_adaptor + + rm -fr $TARGET_BUILD_INSTALL_DIR && mkdir -p $TARGET_BUILD_INSTALL_DIR + + build_libcamhal_target build_icamerasrc # TODO: Generate the RPM for hal, hal_adaptor and icamerasrc together diff --git a/cmake/FindIA_IMAGING.cmake b/cmake/FindIA_IMAGING.cmake index 05afd78e..26cbce5e 100644 --- a/cmake/FindIA_IMAGING.cmake +++ b/cmake/FindIA_IMAGING.cmake @@ -23,76 +23,69 @@ endif() include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(IA_IMAGING ia_imaging) -if(NOT IA_IMAGING_FOUND) - message(FATAL_ERROR "IA_IMAGING not found") +pkg_check_modules(IA_IMAGING${TARGET_SUFFIX} ia_imaging${TARGET_SUFFIX}) +if(NOT IA_IMAGING${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "IA_IMAGING${TARGET_SUFFIX} not found") endif() -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${IA_IMAGING_LIBRARY_DIRS}) +set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${IA_IMAGING${TARGET_SUFFIX}_LIBRARY_DIRS}) # Libraries -find_library(IA_CCA_LIB ia_cca) -find_library(IA_AIQ_LIB ia_aiq) -find_library(IA_AIQB_PARSER_LIB ia_aiqb_parser) -find_library(IA_CMC_PARSER_LIB ia_cmc_parser) -if (NOT ENABLE_SANDBOXING) -find_library(IA_LARD_LIB ia_lard) -endif() #ENABLE_SANDBOXING -find_library(IA_EXC_LIB ia_exc) -find_library(IA_MKN_LIB ia_mkn) +find_library(IA_CCA${TARGET_SUFFIX}_LIB ia_cca${TARGET_SUFFIX}) +find_library(IA_AIQ${TARGET_SUFFIX}_LIB ia_aiq${TARGET_SUFFIX}) +find_library(IA_AIQB_PARSER${TARGET_SUFFIX}_LIB ia_aiqb_parser${TARGET_SUFFIX}) +find_library(IA_CMC_PARSER${TARGET_SUFFIX}_LIB ia_cmc_parser${TARGET_SUFFIX}) +find_library(IA_EXC${TARGET_SUFFIX}_LIB ia_exc${TARGET_SUFFIX}) +find_library(IA_MKN${TARGET_SUFFIX}_LIB ia_mkn${TARGET_SUFFIX}) # SENSOR_EMD_DECODER -find_library(IA_EMD_LIB ia_emd_decoder) +find_library(IA_EMD${TARGET_SUFFIX}_LIB ia_emd_decoder${TARGET_SUFFIX}) # DOL_FEATURE_S -find_library(IA_BCOMP_LIB ia_bcomp) +find_library(IA_BCOMP${TARGET_SUFFIX}_LIB ia_bcomp${TARGET_SUFFIX}) # DOL_FEATURE_E -find_library(IA_NVM_LIB ia_nvm) -find_library(IA_LOG_LIB ia_log) -find_library(IA_DVS_LIB ia_dvs) -find_library(IA_COORDINATE_LIB ia_coordinate) -find_library(IA_LTM_LIB ia_ltm) -find_library(IA_DVS_LIB ia_dvs) -find_library(IA_ISP_BXT_LIB ia_isp_bxt) -find_library(BXT_IA_PAL_LIB broxton_ia_pal) -if (USE_PG_LITE_PIPE) -find_library(P2P_LIB_NAME ia_p2p_${IPU_VER}) -endif() +find_library(IA_NVM${TARGET_SUFFIX}_LIB ia_nvm${TARGET_SUFFIX}) +find_library(IA_LOG${TARGET_SUFFIX}_LIB ia_log${TARGET_SUFFIX}) +find_library(IA_DVS${TARGET_SUFFIX}_LIB ia_dvs${TARGET_SUFFIX}) +find_library(IA_COORDINATE${TARGET_SUFFIX}_LIB ia_coordinate${TARGET_SUFFIX}) +find_library(IA_LTM${TARGET_SUFFIX}_LIB ia_ltm${TARGET_SUFFIX}) +find_library(IA_DVS${TARGET_SUFFIX}_LIB ia_dvs${TARGET_SUFFIX}) +find_library(IA_ISP_BXT${TARGET_SUFFIX}_LIB ia_isp_bxt${TARGET_SUFFIX}) +find_library(BXT_IA_PAL${TARGET_SUFFIX}_LIB broxton_ia_pal${TARGET_SUFFIX}) -set(IA_IMAGING_LIBS - ${IA_CCA_LIB} - ${IA_AIQ_LIB} - ${IA_AIQB_PARSER_LIB} - ${IA_CMC_PARSER_LIB} - ${IA_EXC_LIB} - ${IA_MKN_LIB} - ${IA_EMD_LIB} - ${IA_BCOMP_LIB} - ${IA_NVM_LIB} - ${IA_LOG_LIB} - ${IA_DVS_LIB} - ${IA_COORDINATE_LIB} - ${IA_LTM_LIB} - ${IA_DVS_LIB} - ${IA_OB_LIB} +set(IA_IMAGING${TARGET_SUFFIX}_LIBS + ${IA_CCA${TARGET_SUFFIX}_LIB} + ${IA_AIQ${TARGET_SUFFIX}_LIB} + ${IA_AIQB_PARSER${TARGET_SUFFIX}_LIB} + ${IA_CMC_PARSER${TARGET_SUFFIX}_LIB} + ${IA_EXC${TARGET_SUFFIX}_LIB} + ${IA_MKN${TARGET_SUFFIX}_LIB} + ${IA_EMD${TARGET_SUFFIX}_LIB} + ${IA_BCOMP${TARGET_SUFFIX}_LIB} + ${IA_NVM${TARGET_SUFFIX}_LIB} + ${IA_LOG${TARGET_SUFFIX}_LIB} + ${IA_DVS${TARGET_SUFFIX}_LIB} + ${IA_COORDINATE${TARGET_SUFFIX}_LIB} + ${IA_LTM${TARGET_SUFFIX}_LIB} + ${IA_DVS${TARGET_SUFFIX}_LIB} + ${IA_OB${TARGET_SUFFIX}_LIB} + ${IA_ISP_BXT${TARGET_SUFFIX}_LIB} + ${BXT_IA_PAL${TARGET_SUFFIX}_LIB} ) if (NOT ENABLE_SANDBOXING) -set(IA_IMAGING_LIBS - ${IA_IMAGING_LIBS} - ${IA_LARD_LIB} - ) + find_library(IA_LARD${TARGET_SUFFIX}_LIB ia_lard${TARGET_SUFFIX}) + set(IA_IMAGING${TARGET_SUFFIX}_LIBS ${IA_IMAGING${TARGET_SUFFIX}_LIBS} ${IA_LARD${TARGET_SUFFIX}_LIB}) endif() #ENABLE_SANDBOXING if (USE_PG_LITE_PIPE) -set(IA_IMAGING_LIBS ${IA_IMAGING_LIBS} ${P2P_LIB_NAME}) + find_library(IA_P2P${TARGET_SUFFIX}_LIB ia_p2p${TARGET_SUFFIX}) + set(IA_IMAGING${TARGET_SUFFIX}_LIBS ${IA_IMAGING${TARGET_SUFFIX}_LIBS} ${IA_P2P${TARGET_SUFFIX}_LIB}) endif() -set(IA_IMAGING_LIBS ${IA_IMAGING_LIBS} ${IA_ISP_BXT_LIB} ${BXT_IA_PAL_LIB}) - # handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if # all listed variables are TRUE -find_package_handle_standard_args(IA_IMAGING - REQUIRED_VARS IA_IMAGING_INCLUDE_DIRS IA_IMAGING_LIBS) +find_package_handle_standard_args(IA_IMAGING${TARGET_SUFFIX} + REQUIRED_VARS IA_IMAGING${TARGET_SUFFIX}_INCLUDE_DIRS IA_IMAGING${TARGET_SUFFIX}_LIBS) -if(NOT IA_IMAGING_FOUND) - message(FATAL_ERROR "IA_IMAGING not found") +if(NOT IA_IMAGING${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "IA_IMAGING${TARGET_SUFFIX} not found") endif() diff --git a/cmake/FindLIBGCSS.cmake b/cmake/FindLIBGCSS.cmake index fd6770b9..dd0ff799 100644 --- a/cmake/FindLIBGCSS.cmake +++ b/cmake/FindLIBGCSS.cmake @@ -18,22 +18,22 @@ include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(LIBGCSS libgcss) -if(NOT LIBGCSS_FOUND) - message(FATAL_ERROR "LIBGCSS not found") +pkg_check_modules(LIBGCSS${TARGET_SUFFIX} libgcss${TARGET_SUFFIX}) +if(NOT LIBGCSS${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "LIBGCSS${TARGET_SUFFIX} not found") endif() -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBGCSS_LIBRARY_DIRS}) +set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBGCSS${TARGET_SUFFIX}_LIBRARY_DIRS}) # Libraries -find_library(GCSS_LIB gcss) -set(LIBGCSS_LIBS ${GCSS_LIB}) +find_library(GCSS${TARGET_SUFFIX}_LIB gcss${TARGET_SUFFIX}) +set(LIBGCSS${TARGET_SUFFIX}_LIBS ${GCSS${TARGET_SUFFIX}_LIB}) # handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if # all listed variables are TRUE -find_package_handle_standard_args(LIBGCSS REQUIRED_VARS LIBGCSS_INCLUDE_DIRS LIBGCSS_LIBS) +find_package_handle_standard_args(LIBGCSS${TARGET_SUFFIX} REQUIRED_VARS LIBGCSS${TARGET_SUFFIX}_INCLUDE_DIRS LIBGCSS${TARGET_SUFFIX}_LIBS) -if(NOT LIBGCSS_FOUND) - message(FATAL_ERROR "LIBGCSS not found") +if(NOT LIBGCSS${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "LIBGCSS${TARGET_SUFFIX} not found") endif() diff --git a/cmake/FindLIBIPU.cmake b/cmake/FindLIBIPU.cmake index 44c26459..9f8d9fc6 100644 --- a/cmake/FindLIBIPU.cmake +++ b/cmake/FindLIBIPU.cmake @@ -15,8 +15,16 @@ # if (TARGET ${IPU_VER}) - message("libcamhal found lib${IPU_VER} target") - return() + if (NOT BUILD_CAMHAL_PLUGIN) + message("libcamhal found lib${IPU_VER} target") + return() + endif() +endif() + +if(NOT DEFINED IPU_VER) + set(libipu_ver libipu4) +else() + set(libipu_ver lib${IPU_VER}) endif() # Get include and lib paths for LIBIPU from pkgconfig @@ -24,28 +32,22 @@ include(FindPackageHandleStandardArgs) # Include directory find_package(PkgConfig) -if(NOT DEFINED IPU_VER) -set(libipu_ver libipu4) -else() -set(libipu_ver lib${IPU_VER}) -endif() -pkg_check_modules(LIBIPU ${libipu_ver}) -if(NOT LIBIPU_FOUND) - message(FATAL_ERROR "LIBIPU not found") +pkg_check_modules(LIBIPU${TARGET_SUFFIX} ${libipu_ver}) +if(NOT LIBIPU${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "LIBIPU${TARGET_SUFFIX} not found") endif() -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBIPU_LIBRARY_DIRS}) +set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBIPU${TARGET_SUFFIX}_LIBRARY_DIRS}) # Libraries -find_library(IPU_LIB NAMES ${libipu_ver}.a) - -set(LIBIPU_LIBS ${IPU_LIB}) +find_library(IPU${TARGET_SUFFIX}_LIB NAMES ${libipu_ver}.a) +set(LIBIPU${TARGET_SUFFIX}_LIBS ${IPU${TARGET_SUFFIX}_LIB}) # handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if # all listed variables are TRUE -find_package_handle_standard_args(LIBIPU - REQUIRED_VARS LIBIPU_INCLUDE_DIRS LIBIPU_LIBS) +find_package_handle_standard_args(LIBIPU${TARGET_SUFFIX} + REQUIRED_VARS LIBIPU${TARGET_SUFFIX}_INCLUDE_DIRS LIBIPU${TARGET_SUFFIX}_LIBS) -if(NOT LIBIPU_FOUND) - message(FATAL_ERROR "LIBIPU not found") +if(NOT LIBIPU${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "LIBIPU${TARGET_SUFFIX} not found") endif() diff --git a/cmake/libcamhal.pc.cmakein b/cmake/libcamhal.pc.cmakein index b63d711a..e08ab497 100644 --- a/cmake/libcamhal.pc.cmakein +++ b/cmake/libcamhal.pc.cmakein @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix}/@CMAKE_INSTALL_SUB_PATH@ -libdir=${prefix}/lib/@CMAKE_INSTALL_SUB_PATH@ -includedir=${prefix}/include/@CMAKE_INSTALL_SUB_PATH@/libcamhal +exec_prefix=${prefix} +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/include/libcamhal Name: libcamhal Description: Camera HAL Library diff --git a/config/linux/ipu6/0315_imx274_wfov.IPU6.aiqb b/config/linux/ipu6/0315_imx274_wfov.IPU6.aiqb deleted file mode 100644 index 59a0bee9..00000000 Binary files a/config/linux/ipu6/0315_imx274_wfov.IPU6.aiqb and /dev/null differ diff --git a/config/linux/ipu6/AR0234_BARCODE_TGL.aiqb b/config/linux/ipu6/AR0234_BARCODE_TGL.aiqb deleted file mode 100644 index 0eab4246..00000000 Binary files a/config/linux/ipu6/AR0234_BARCODE_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/AR0234_TGL_10bits.aiqb b/config/linux/ipu6/AR0234_TGL_10bits.aiqb deleted file mode 100644 index a469723c..00000000 Binary files a/config/linux/ipu6/AR0234_TGL_10bits.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX135_13P2BAD33_TGL.aiqb b/config/linux/ipu6/IMX135_13P2BAD33_TGL.aiqb deleted file mode 100644 index a977662b..00000000 Binary files a/config/linux/ipu6/IMX135_13P2BAD33_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX390_HDR_TGL.aiqb b/config/linux/ipu6/IMX390_HDR_TGL.aiqb deleted file mode 100644 index 2df11318..00000000 Binary files a/config/linux/ipu6/IMX390_HDR_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX390_HDR_TGL_2.aiqb b/config/linux/ipu6/IMX390_HDR_TGL_2.aiqb deleted file mode 100644 index 2df11318..00000000 Binary files a/config/linux/ipu6/IMX390_HDR_TGL_2.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX477_MOD255I_DOL_TGL.aiqb b/config/linux/ipu6/IMX477_MOD255I_DOL_TGL.aiqb deleted file mode 100644 index 77409882..00000000 Binary files a/config/linux/ipu6/IMX477_MOD255I_DOL_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX477_MOD26552_BAYER_TGL.aiqb b/config/linux/ipu6/IMX477_MOD26552_BAYER_TGL.aiqb deleted file mode 100644 index 0ea2cd75..00000000 Binary files a/config/linux/ipu6/IMX477_MOD26552_BAYER_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/IMX477_MOD26552_WFOV_TGL.aiqb b/config/linux/ipu6/IMX477_MOD26552_WFOV_TGL.aiqb deleted file mode 100644 index f3e5b3a3..00000000 Binary files a/config/linux/ipu6/IMX477_MOD26552_WFOV_TGL.aiqb and /dev/null differ diff --git a/config/linux/ipu6/gcss/graph_settings_hm11b1.xml b/config/linux/ipu6/gcss/graph_settings_hm11b1.xml index 289e0668..97063548 100644 --- a/config/linux/ipu6/gcss/graph_settings_hm11b1.xml +++ b/config/linux/ipu6/gcss/graph_settings_hm11b1.xml @@ -262,7 +262,7 @@ limitations under the License. - + @@ -1131,7 +1131,7 @@ limitations under the License. - + diff --git a/config/linux/ipu6/hm11b1.aiqb b/config/linux/ipu6/hm11b1.aiqb deleted file mode 100644 index bd95d6c8..00000000 Binary files a/config/linux/ipu6/hm11b1.aiqb and /dev/null differ diff --git a/config/linux/ipu6/ov01a1s.aiqb b/config/linux/ipu6/ov01a1s.aiqb deleted file mode 100644 index 9d672636..00000000 Binary files a/config/linux/ipu6/ov01a1s.aiqb and /dev/null differ diff --git a/config/linux/ipu6/sensors/hm11b1-uf.xml b/config/linux/ipu6/sensors/hm11b1-uf.xml index a5a418b3..12d3038a 100644 --- a/config/linux/ipu6/sensors/hm11b1-uf.xml +++ b/config/linux/ipu6/sensors/hm11b1-uf.xml @@ -16,12 +16,12 @@ - + - - + + @@ -31,6 +31,17 @@ + + + + + + + + + + + @@ -63,7 +74,7 @@ - + diff --git a/config/linux/ipu6/sensors/imx390.xml b/config/linux/ipu6/sensors/imx390.xml index 4bd6dbb7..675539cf 100644 --- a/config/linux/ipu6/sensors/imx390.xml +++ b/config/linux/ipu6/sensors/imx390.xml @@ -109,6 +109,7 @@ + @@ -203,6 +204,7 @@ + @@ -297,6 +299,7 @@ + @@ -391,7 +394,388 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -487,7 +871,8 @@ - + + @@ -583,7 +968,8 @@ - + + @@ -679,7 +1065,8 @@ - + + @@ -775,6 +1162,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -836,6 +1612,7 @@ + diff --git a/config/linux/ipu6/sensors/isx031.xml b/config/linux/ipu6/sensors/isx031.xml index 333fd9d1..292ef1c4 100644 --- a/config/linux/ipu6/sensors/isx031.xml +++ b/config/linux/ipu6/sensors/isx031.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + diff --git a/config/linux/ipu6ep/AR0234_TGL_10bits.aiqb b/config/linux/ipu6ep/AR0234_TGL_10bits.aiqb deleted file mode 100644 index a469723c..00000000 Binary files a/config/linux/ipu6ep/AR0234_TGL_10bits.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/HI556_1BG502T3_ADL.aiqb b/config/linux/ipu6ep/HI556_1BG502T3_ADL.aiqb deleted file mode 100644 index fa457e46..00000000 Binary files a/config/linux/ipu6ep/HI556_1BG502T3_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/HI556_CJFLE25_ADL.aiqb b/config/linux/ipu6ep/HI556_CJFLE25_ADL.aiqb deleted file mode 100644 index fa457e46..00000000 Binary files a/config/linux/ipu6ep/HI556_CJFLE25_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/HM2170_1SG205N3_ADL.aiqb b/config/linux/ipu6ep/HM2170_1SG205N3_ADL.aiqb deleted file mode 100644 index 44cbeb6b..00000000 Binary files a/config/linux/ipu6ep/HM2170_1SG205N3_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/HM2170_CJFME18_ADL.aiqb b/config/linux/ipu6ep/HM2170_CJFME18_ADL.aiqb deleted file mode 100644 index 948dd19a..00000000 Binary files a/config/linux/ipu6ep/HM2170_CJFME18_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/IMX390_HDR_ADL.aiqb b/config/linux/ipu6ep/IMX390_HDR_ADL.aiqb deleted file mode 100644 index a61ef56b..00000000 Binary files a/config/linux/ipu6ep/IMX390_HDR_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/OV02C10_1BG203N3_ADL.aiqb b/config/linux/ipu6ep/OV02C10_1BG203N3_ADL.aiqb deleted file mode 100644 index 89e8f10b..00000000 Binary files a/config/linux/ipu6ep/OV02C10_1BG203N3_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/OV02C10_1SG204N3_ADL.aiqb b/config/linux/ipu6ep/OV02C10_1SG204N3_ADL.aiqb deleted file mode 100644 index 15db32e9..00000000 Binary files a/config/linux/ipu6ep/OV02C10_1SG204N3_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/OV02C10_CIFME14_ADL.aiqb b/config/linux/ipu6ep/OV02C10_CIFME14_ADL.aiqb deleted file mode 100644 index 15db32e9..00000000 Binary files a/config/linux/ipu6ep/OV02C10_CIFME14_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/OV08A10_YHUT_ADL.aiqb b/config/linux/ipu6ep/OV08A10_YHUT_ADL.aiqb deleted file mode 100644 index aa833866..00000000 Binary files a/config/linux/ipu6ep/OV08A10_YHUT_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/OV2740_CJFLE23_ADL.aiqb b/config/linux/ipu6ep/OV2740_CJFLE23_ADL.aiqb deleted file mode 100644 index 31f0a507..00000000 Binary files a/config/linux/ipu6ep/OV2740_CJFLE23_ADL.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/ov01a10.aiqb b/config/linux/ipu6ep/ov01a10.aiqb deleted file mode 100644 index 479a608a..00000000 Binary files a/config/linux/ipu6ep/ov01a10.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/ov01a1s.aiqb b/config/linux/ipu6ep/ov01a1s.aiqb deleted file mode 100644 index f175ecd9..00000000 Binary files a/config/linux/ipu6ep/ov01a1s.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/ov13b10.aiqb b/config/linux/ipu6ep/ov13b10.aiqb deleted file mode 100644 index b1428c69..00000000 Binary files a/config/linux/ipu6ep/ov13b10.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/ov8856.aiqb b/config/linux/ipu6ep/ov8856.aiqb deleted file mode 100644 index 97d8ff72..00000000 Binary files a/config/linux/ipu6ep/ov8856.aiqb and /dev/null differ diff --git a/config/linux/ipu6ep/sensors/hi556-uf.xml b/config/linux/ipu6ep/sensors/hi556-uf.xml index 648bb55a..338952cd 100644 --- a/config/linux/ipu6ep/sensors/hi556-uf.xml +++ b/config/linux/ipu6ep/sensors/hi556-uf.xml @@ -31,6 +31,17 @@ + + + + + + + + + + + @@ -266,6 +277,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/hm2170-uf.xml b/config/linux/ipu6ep/sensors/hm2170-uf.xml index d3337a69..4e72419d 100644 --- a/config/linux/ipu6ep/sensors/hm2170-uf.xml +++ b/config/linux/ipu6ep/sensors/hm2170-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + @@ -97,6 +108,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/imx390.xml b/config/linux/ipu6ep/sensors/imx390.xml index 133bfeab..2e104dfb 100644 --- a/config/linux/ipu6ep/sensors/imx390.xml +++ b/config/linux/ipu6ep/sensors/imx390.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -633,7 +809,7 @@ - + @@ -723,7 +899,7 @@ - + @@ -813,7 +989,7 @@ - + @@ -903,7 +1079,7 @@ - + @@ -911,15 +1087,15 @@ - - + + - - + + - + @@ -930,15 +1106,15 @@ - - + + - - + + - + @@ -993,7 +1169,7 @@ - + @@ -1001,15 +1177,15 @@ - - + + - - + + - + @@ -1020,15 +1196,15 @@ - - + + - - + + - + @@ -1082,4 +1258,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/isx031.xml b/config/linux/ipu6ep/sensors/isx031.xml index 333fd9d1..96cf59c1 100644 --- a/config/linux/ipu6ep/sensors/isx031.xml +++ b/config/linux/ipu6ep/sensors/isx031.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov01a1s-uf.xml b/config/linux/ipu6ep/sensors/ov01a1s-uf.xml index 38918069..333db94a 100644 --- a/config/linux/ipu6ep/sensors/ov01a1s-uf.xml +++ b/config/linux/ipu6ep/sensors/ov01a1s-uf.xml @@ -33,6 +33,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov02c10-uf.xml b/config/linux/ipu6ep/sensors/ov02c10-uf.xml index bd7604f8..200cb19b 100644 --- a/config/linux/ipu6ep/sensors/ov02c10-uf.xml +++ b/config/linux/ipu6ep/sensors/ov02c10-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + @@ -96,6 +107,17 @@ + + + + + + + + + + + @@ -163,6 +185,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov08a10-uf.xml b/config/linux/ipu6ep/sensors/ov08a10-uf.xml index 3cd03672..f4a1727c 100644 --- a/config/linux/ipu6ep/sensors/ov08a10-uf.xml +++ b/config/linux/ipu6ep/sensors/ov08a10-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov13b10-uf.xml b/config/linux/ipu6ep/sensors/ov13b10-uf.xml index d638c487..13f579b3 100644 --- a/config/linux/ipu6ep/sensors/ov13b10-uf.xml +++ b/config/linux/ipu6ep/sensors/ov13b10-uf.xml @@ -31,7 +31,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov8856-uf.xml b/config/linux/ipu6ep/sensors/ov8856-uf.xml index c0aca646..92cc817c 100644 --- a/config/linux/ipu6ep/sensors/ov8856-uf.xml +++ b/config/linux/ipu6ep/sensors/ov8856-uf.xml @@ -31,6 +31,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/ov8856-wf.xml b/config/linux/ipu6ep/sensors/ov8856-wf.xml index 65cc1c0e..7c636c31 100644 --- a/config/linux/ipu6ep/sensors/ov8856-wf.xml +++ b/config/linux/ipu6ep/sensors/ov8856-wf.xml @@ -31,6 +31,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/libcamhal_profile.xml b/config/linux/ipu6epmtl/libcamhal_profile.xml index 27485312..e51ac861 100644 --- a/config/linux/ipu6epmtl/libcamhal_profile.xml +++ b/config/linux/ipu6epmtl/libcamhal_profile.xml @@ -1,5 +1,5 @@ - - + + + + + + + + + + + + + + + + + + - + + + + - + - diff --git a/config/linux/ipu6epmtl/sensors/ar0234-2.xml b/config/linux/ipu6epmtl/sensors/ar0234-2.xml new file mode 100644 index 00000000..2e329251 --- /dev/null +++ b/config/linux/ipu6epmtl/sensors/ar0234-2.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ar0234.xml b/config/linux/ipu6epmtl/sensors/ar0234.xml deleted file mode 100644 index 756f8374..00000000 --- a/config/linux/ipu6epmtl/sensors/ar0234.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl/sensors/hi556-uf.xml b/config/linux/ipu6epmtl/sensors/hi556-uf.xml index 648bb55a..338952cd 100644 --- a/config/linux/ipu6epmtl/sensors/hi556-uf.xml +++ b/config/linux/ipu6epmtl/sensors/hi556-uf.xml @@ -31,6 +31,17 @@ + + + + + + + + + + + @@ -266,6 +277,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/hm2170-uf.xml b/config/linux/ipu6epmtl/sensors/hm2170-uf.xml index d3337a69..4e72419d 100644 --- a/config/linux/ipu6epmtl/sensors/hm2170-uf.xml +++ b/config/linux/ipu6epmtl/sensors/hm2170-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + @@ -97,6 +108,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/hm2172-uf.xml b/config/linux/ipu6epmtl/sensors/hm2172-uf.xml index f21dfcf4..fb210c3b 100644 --- a/config/linux/ipu6epmtl/sensors/hm2172-uf.xml +++ b/config/linux/ipu6epmtl/sensors/hm2172-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/imx390.xml b/config/linux/ipu6epmtl/sensors/imx390.xml index 45a4d01b..e400a2be 100644 --- a/config/linux/ipu6epmtl/sensors/imx390.xml +++ b/config/linux/ipu6epmtl/sensors/imx390.xml @@ -370,15 +370,15 @@ - - + + - - + + @@ -388,15 +388,15 @@ - - + + - - + + @@ -451,22 +451,22 @@ - + - - + + - - + + @@ -476,15 +476,15 @@ - - + + - - + + @@ -539,7 +539,7 @@ - + diff --git a/config/linux/ipu6epmtl/sensors/isx031.xml b/config/linux/ipu6epmtl/sensors/isx031.xml index 333fd9d1..80f54006 100644 --- a/config/linux/ipu6epmtl/sensors/isx031.xml +++ b/config/linux/ipu6epmtl/sensors/isx031.xml @@ -18,15 +18,15 @@ - - + + - - + + @@ -36,15 +36,15 @@ - - + + - - + + @@ -54,15 +54,15 @@ - - + + - - + + @@ -84,15 +84,15 @@ - - + + - - + + @@ -102,15 +102,15 @@ - - + + - - + + @@ -120,15 +120,15 @@ - - + + - - + + @@ -150,15 +150,15 @@ - - + + - - + + @@ -168,15 +168,15 @@ - - + + - - + + @@ -186,15 +186,15 @@ - - + + - - + + @@ -216,15 +216,15 @@ - - + + - - + + @@ -234,15 +234,15 @@ - - + + - - + + @@ -252,15 +252,15 @@ - - + + - - + + @@ -282,15 +282,15 @@ - - + + - - + + @@ -300,15 +300,15 @@ - - + + - - + + @@ -318,15 +318,15 @@ - - + + - - + + @@ -348,15 +348,15 @@ - - + + - - + + @@ -366,15 +366,15 @@ - - + + - - + + @@ -384,15 +384,15 @@ - - + + - - + + @@ -414,15 +414,15 @@ - - + + - - + + @@ -432,15 +432,15 @@ - - + + - - + + @@ -450,15 +450,15 @@ - - + + - - + + @@ -480,15 +480,15 @@ - - + + - - + + @@ -498,15 +498,15 @@ - - + + - - + + @@ -516,15 +516,15 @@ - - + + - - + + diff --git a/config/linux/ipu6epmtl/sensors/lt6911uxe-1.xml b/config/linux/ipu6epmtl/sensors/lt6911uxe-1.xml new file mode 100644 index 00000000..7e9f28fd --- /dev/null +++ b/config/linux/ipu6epmtl/sensors/lt6911uxe-1.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/lt6911uxe.xml b/config/linux/ipu6epmtl/sensors/lt6911uxe-2.xml similarity index 53% rename from config/linux/ipu6epmtl/sensors/lt6911uxe.xml rename to config/linux/ipu6epmtl/sensors/lt6911uxe-2.xml index d0ce0dfc..c8ec91b7 100644 --- a/config/linux/ipu6epmtl/sensors/lt6911uxe.xml +++ b/config/linux/ipu6epmtl/sensors/lt6911uxe-2.xml @@ -1,5 +1,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - s - - - - - - - - - - - + @@ -176,6 +87,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -198,6 +209,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov01a1s-uf.xml b/config/linux/ipu6epmtl/sensors/ov01a1s-uf.xml index 02de85e1..23d243c9 100644 --- a/config/linux/ipu6epmtl/sensors/ov01a1s-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov01a1s-uf.xml @@ -33,6 +33,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov02c10-uf.xml b/config/linux/ipu6epmtl/sensors/ov02c10-uf.xml index 72a7703c..eb456069 100644 --- a/config/linux/ipu6epmtl/sensors/ov02c10-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov02c10-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + @@ -96,6 +107,17 @@ + + + + + + + + + + + @@ -163,6 +185,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov02e10-uf.xml b/config/linux/ipu6epmtl/sensors/ov02e10-uf.xml index 1e1784a3..6a5be509 100644 --- a/config/linux/ipu6epmtl/sensors/ov02e10-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov02e10-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov05c10-uf.xml b/config/linux/ipu6epmtl/sensors/ov05c10-uf.xml index e78611b2..9cefa580 100644 --- a/config/linux/ipu6epmtl/sensors/ov05c10-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov05c10-uf.xml @@ -29,6 +29,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov08x40-uf.xml b/config/linux/ipu6epmtl/sensors/ov08x40-uf.xml index 77cdf649..51b9d320 100644 --- a/config/linux/ipu6epmtl/sensors/ov08x40-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov08x40-uf.xml @@ -26,6 +26,17 @@ + + + + + + + + + + + diff --git a/config/linux/ipu6epmtl/sensors/ov13b10-uf.xml b/config/linux/ipu6epmtl/sensors/ov13b10-uf.xml index a5187a7c..95f4bd58 100644 --- a/config/linux/ipu6epmtl/sensors/ov13b10-uf.xml +++ b/config/linux/ipu6epmtl/sensors/ov13b10-uf.xml @@ -59,6 +59,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/config/linux/ipu6epmtl_upstream/gcss/graph_settings_OV13B10_09B13_DPC_T3_MTL.xml b/config/linux/ipu6epmtl_upstream/gcss/graph_settings_OV13B10_09B13_DPC_T3_MTL.xml deleted file mode 100644 index a1de3c8f..00000000 --- a/config/linux/ipu6epmtl_upstream/gcss/graph_settings_OV13B10_09B13_DPC_T3_MTL.xml +++ /dev/null @@ -1,18602 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/gcss/graph_settings_ar0234.xml b/config/linux/ipu6epmtl_upstream/gcss/graph_settings_ar0234.xml deleted file mode 100644 index 902a4ef8..00000000 --- a/config/linux/ipu6epmtl_upstream/gcss/graph_settings_ar0234.xml +++ /dev/null @@ -1,578 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/libcamhal_profile.xml b/config/linux/ipu6epmtl_upstream/libcamhal_profile.xml deleted file mode 100644 index b3b0b6fc..00000000 --- a/config/linux/ipu6epmtl_upstream/libcamhal_profile.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/psys_policy_profiles.xml b/config/linux/ipu6epmtl_upstream/psys_policy_profiles.xml deleted file mode 100644 index 8091bfe2..00000000 --- a/config/linux/ipu6epmtl_upstream/psys_policy_profiles.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/sensors/lt6911uxe.xml b/config/linux/ipu6epmtl_upstream/sensors/lt6911uxe.xml deleted file mode 100644 index 9f18bee6..00000000 --- a/config/linux/ipu6epmtl_upstream/sensors/lt6911uxe.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/sensors/ov13b10-uf.xml b/config/linux/ipu6epmtl_upstream/sensors/ov13b10-uf.xml deleted file mode 100644 index 1fcb4c31..00000000 --- a/config/linux/ipu6epmtl_upstream/sensors/ov13b10-uf.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/sensors/ov13b10-wf.xml b/config/linux/ipu6epmtl_upstream/sensors/ov13b10-wf.xml deleted file mode 100644 index 6b73665e..00000000 --- a/config/linux/ipu6epmtl_upstream/sensors/ov13b10-wf.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/linux/ipu6epmtl_upstream/tunning_profiles.xml b/config/linux/ipu6epmtl_upstream/tunning_profiles.xml deleted file mode 100644 index f1bc2c1f..00000000 --- a/config/linux/ipu6epmtl_upstream/tunning_profiles.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - diff --git a/include/api/Parameters.h b/include/api/Parameters.h index 37b1b11f..c696d064 100644 --- a/include/api/Parameters.h +++ b/include/api/Parameters.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2013 The Android Open Source Project - * Copyright (C) 2015-2023 Intel Corporation. + * Copyright (C) 2015-2024 Intel Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -94,6 +94,7 @@ typedef struct { } vc_info_t; // VIRTUAL_CHANNEL_E +// IPU7_FEATURE_S /** * \struct device_info_t: Define each camera basic information */ @@ -104,6 +105,7 @@ typedef struct { const char* name; /**< Sensor name */ const char* description; /**< Sensor description */ } device_info_t; +// IPU7_FEATURE_E /** * Basic definition will be inherited by more complicated structure. @@ -277,7 +279,7 @@ typedef struct { properties */ uint64_t timestamp; /**< buffer timestamp, it's a time reference measured in nanosecond */ uint32_t frameNumber; /**< buffer frameNumber, it's an id of buffer */ - void *priv; /**< used to pass private data */ + uint64_t privateHandle; /**< used to pass private data */ uint64_t reserved; /**< reserved for future */ } camera_buffer_t; @@ -1089,11 +1091,13 @@ typedef enum { LENS_SHADING_MAP_MODE_ON } camera_lens_shading_map_mode_type_t; +// IPU7_FEATURE_S typedef enum { CAMERA_STATISTICS_FACE_DETECT_MODE_OFF, CAMERA_STATISTICS_FACE_DETECT_MODE_SIMPLE, CAMERA_STATISTICS_FACE_DETECT_MODE_FULL, } camera_statistics_face_detect_mode_t; +// IPU7_FEATURE_E typedef enum { ROTATE_NONE, diff --git a/modules/ia_css/ipu6ep/include/ia_css_psys_process_group_impl.h b/modules/ia_css/ipu6ep/include/ia_css_psys_process_group_impl.h index 614eaad3..6a515cc4 100644 --- a/modules/ia_css/ipu6ep/include/ia_css_psys_process_group_impl.h +++ b/modules/ia_css/ipu6ep/include/ia_css_psys_process_group_impl.h @@ -535,6 +535,7 @@ int ia_css_process_group_print( ia_css_rbm_t routing_bitmap; NOT_USED(fid); + NOT_USED(routing_bitmap); IA_CSS_TRACE_0(PSYSAPI_DYNAMIC, VERBOSE, "ia_css_process_group_print(): enter:\n"); @@ -689,6 +690,7 @@ bool ia_css_can_process_group_submit( int i; bool can_submit = false; int retval = -1; + NOT_USED(retval); uint8_t terminal_count = ia_css_process_group_get_terminal_count(process_group); @@ -701,6 +703,7 @@ bool ia_css_can_process_group_submit( ia_css_terminal_t *terminal = ia_css_process_group_get_terminal(process_group, i); vied_vaddress_t buffer; + NOT_USED(buffer); ia_css_buffer_state_t buffer_state; verifexitval(terminal != NULL, EINVAL); @@ -772,6 +775,7 @@ bool ia_css_can_enqueue_buffer_set( int i; bool can_enqueue = false; int retval = -1; + NOT_USED(retval); uint8_t terminal_count; IA_CSS_TRACE_0(PSYSAPI_DYNAMIC, INFO, @@ -795,6 +799,7 @@ bool ia_css_can_enqueue_buffer_set( ia_css_terminal_t *terminal = ia_css_process_group_get_terminal(process_group, i); vied_vaddress_t buffer; + NOT_USED(buffer); ia_css_buffer_state_t buffer_state; verifexitval(terminal != NULL, EINVAL); @@ -854,6 +859,7 @@ bool ia_css_can_process_group_start( int i; bool can_start = false; int retval = -1; + NOT_USED(retval); uint8_t terminal_count; IA_CSS_TRACE_0(PSYSAPI_DYNAMIC, INFO, diff --git a/modules/ia_css/ipu6se/include/ia_css_psys_process_group_impl.h b/modules/ia_css/ipu6se/include/ia_css_psys_process_group_impl.h index 5e074b71..fa76827c 100644 --- a/modules/ia_css/ipu6se/include/ia_css_psys_process_group_impl.h +++ b/modules/ia_css/ipu6se/include/ia_css_psys_process_group_impl.h @@ -535,6 +535,7 @@ int ia_css_process_group_print( ia_css_rbm_t routing_bitmap; NOT_USED(fid); + NOT_USED(routing_bitmap); IA_CSS_TRACE_0(PSYSAPI_DYNAMIC, VERBOSE, "ia_css_process_group_print(): enter:\n"); @@ -701,6 +702,7 @@ bool ia_css_can_process_group_submit( ia_css_terminal_t *terminal = ia_css_process_group_get_terminal(process_group, i); vied_vaddress_t buffer; + NOT_USED(buffer); ia_css_buffer_state_t buffer_state; verifexitval(terminal != NULL, EINVAL); @@ -795,6 +797,7 @@ bool ia_css_can_enqueue_buffer_set( ia_css_terminal_t *terminal = ia_css_process_group_get_terminal(process_group, i); vied_vaddress_t buffer; + NOT_USED(buffer); ia_css_buffer_state_t buffer_state; verifexitval(terminal != NULL, EINVAL); diff --git a/src/hal/hal_adaptor/CMakeLists.txt b/src/hal/hal_adaptor/CMakeLists.txt index 68589e0b..9de5e13a 100644 --- a/src/hal/hal_adaptor/CMakeLists.txt +++ b/src/hal/hal_adaptor/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Intel Corporation +# Copyright (C) 2023-2024 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,75 +14,25 @@ # limitations under the License. # -cmake_minimum_required(VERSION 2.8) -project(hal_adaptor) - # Source directories set(ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../) set(METADATA_DIR ${ROOT_DIR}/src/metadata) set(IUTILS_DIR ${ROOT_DIR}/src/iutils) set(HAL_ADAPTOR_DIR ${ROOT_DIR}/src/hal/hal_adaptor) -include_directories(${ROOT_DIR}/include - ${ROOT_DIR}/include/api - ${ROOT_DIR}/include/utils - ${ROOT_DIR}/src/metadata - ${ROOT_DIR}/src/iutils - ${ROOT_DIR}/src/core - ${ROOT_DIR}/src/platformdata - ${ROOT_DIR}/src/isp_control - ${ROOT_DIR}/src - ${ROOT_DIR}/modules/v4l2 - ${ROOT_DIR} - ) - -# Install directories -# CMAKE_INSTALL_PREFIX is defined when executing cmake. -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}" CACHE PATH "Target location for install command." FORCE) -endif() -message(STATUS "install prefix: " ${CMAKE_INSTALL_PREFIX}) - -include(GNUInstallDirs) - -# Set the aligned flag -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG(-faligned-new COMPILER_SUPPORTS_ALIGNED_NEW) -if (COMPILER_SUPPORTS_ALIGNED_NEW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faligned-new") -endif() - -# Set the CXX to 11 -set (CMAKE_CXX_STANDARD 11) -add_compile_options(-Wall -Werror - -fstack-protector - -fPIE -fPIC - -DDCHECK_ALWAYS_ON - -Wformat -Wformat-security - ) - -add_definitions(-D__STDC_FORMAT_MACROS - -DHAVE_PTHREADS - -DHAVE_LINUX_OS - ) - -set(HAL_ADAPTOR_LD_FLAGS "-fPIE -fPIC -Wformat -Wformat-security -Wl,-z,relro -Wl,-z,now") - -# check if _FORTIFY_SOURCE is default defined with -O -include(${ROOT_DIR}/cmake/CheckFortifyLevel.cmake) -set(FORTIFY_SOURCE_VALUE) -check_fortify_source(FORTIFY_SOURCE_VALUE) -if(FORTIFY_SOURCE_VALUE) - message(STATUS "compiler default _FORTIFY_SOURCE=${FORTIFY_SOURCE_VALUE}") -else() - message(STATUS "_FORTIFY_SOURCE is not defined or could not be determined.") - add_compile_options(-D_FORTIFY_SOURCE=2) - set(CMAKE_SHARED_LINKER_FLAGS "${LIBCAMHAL_LD_FLAGS} -D_FORTIFY_SOURCE=2") - message(STATUS "define _FORTIFY_SOURCE=2") -endif() - -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${HAL_ADAPTOR_LD_FLAGS}") +set(HAL_ADAPTOR_INCLUDEDIRS + ${ROOT_DIR}/include + ${ROOT_DIR}/include/api + ${ROOT_DIR}/include/utils + ${ROOT_DIR}/src/metadata + ${ROOT_DIR}/src/iutils + ${ROOT_DIR}/src/core + ${ROOT_DIR}/src/platformdata + ${ROOT_DIR}/src/isp_control + ${ROOT_DIR}/src + ${ROOT_DIR}/modules/v4l2 + ${ROOT_DIR} + ) set(HAL_ADAPTOR_SRCS ${METADATA_DIR}/icamera_metadata_base.cpp @@ -100,6 +50,14 @@ set(HAL_ADAPTOR_SRCS ) add_library(hal_adaptor SHARED ${HAL_ADAPTOR_SRCS}) +target_include_directories(hal_adaptor PRIVATE ${HAL_ADAPTOR_INCLUDEDIRS}) +target_compile_definitions(hal_adaptor PRIVATE + -D__STDC_FORMAT_MACROS + -DHAVE_PTHREADS + -DHAVE_LINUX_OS + "-DCAMHAL_PLUGIN_DIR=\"${CMAKE_INSTALL_FULL_LIBDIR}/libcamhal/plugins/\"" + ) +set_target_properties(hal_adaptor PROPERTIES OUTPUT_NAME camhal) set_target_properties(hal_adaptor PROPERTIES SOVERSION 0) set_target_properties(hal_adaptor PROPERTIES VERSION "0.0.0") @@ -111,9 +69,9 @@ target_link_libraries(hal_adaptor ${CMAKE_DL_LIBS}) target_link_libraries(hal_adaptor rt) # Install headers -install(DIRECTORY ${ROOT_DIR}/include/ DESTINATION include/hal_adaptor) +install(DIRECTORY ${ROOT_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libcamhal) if (SUPPORT_LIVE_TUNING) - install(FILES ${ROOT_DIR}/modules/livetune/LiveTuning.h DESTINATION include/hal_adaptor/api) + install(FILES ${ROOT_DIR}/modules/livetune/LiveTuning.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libcamhal/api) endif() # Install libraries @@ -127,10 +85,7 @@ else() endif() # Install package config file -configure_file(${PROJECT_SOURCE_DIR}/hal_adaptor.pc.cmakein - ${PROJECT_SOURCE_DIR}/hal_adaptor.pc @ONLY) -install(FILES hal_adaptor.pc +configure_file(${PROJECT_SOURCE_DIR}/cmake/libcamhal.pc.cmakein + ${PROJECT_SOURCE_DIR}/libcamhal.pc @ONLY) +install(FILES ${PROJECT_SOURCE_DIR}/libcamhal.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - -set(CPACK_GENERATOR "RPM") -include(CPack) diff --git a/src/hal/hal_adaptor/HalAdaptor.cpp b/src/hal/hal_adaptor/HalAdaptor.cpp index 5651063d..4926798a 100644 --- a/src/hal/hal_adaptor/HalAdaptor.cpp +++ b/src/hal/hal_adaptor/HalAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023 Intel Corporation. + * Copyright (C) 2023-2024 Intel Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ namespace icamera { static void* gCameraHalLib = nullptr; static HalApiHandle gCameraHalAdaptor = {}; static char gPciId[8]; -static bool gUpstreamIpuDriver; #define CheckFuncCall(function) \ do { \ @@ -47,7 +46,7 @@ static bool gUpstreamIpuDriver; LOGE("@%s: LOADING: " #fnName "failed: %s", __func__, dlerror()); \ return; \ } \ - LOG2("@%s: LOADING: " #fnName "= %x", __func__, gCameraHalAdaptor.member); \ + LOG2("@%s: LOADING: " #fnName "= %p", __func__, gCameraHalAdaptor.member); \ } while (0) static bool get_ipu_info(const std::string& path) { @@ -75,19 +74,6 @@ static bool get_ipu_info(const std::string& path) { if (pciId.length() > 0) { retval = true; strncpy(gPciId, pciId.c_str(), sizeof(gPciId) - 1); - // TODO: Use another way to identify whether using upstream IPU driver. - // Upstream IPU isys driver use e.g. "intel_ipu6.isys.40" instead of - // "intel-ipu6-isys0". We use "." to identify it. - std::string pciPath = path + '/' + entry->d_name; - DIR* pciDir = opendir(pciPath.c_str()); - struct dirent* pciEntry; - while ((pciEntry = readdir(pciDir)) != nullptr) { - if (strstr(pciEntry->d_name, "intel")) { - gUpstreamIpuDriver = (strchr(pciEntry->d_name, '.') != nullptr); - break; - } - } - closedir(pciDir); break; } } @@ -107,28 +93,27 @@ static void load_camera_hal_library() { CheckAndLogError(!(hasIpu6Info || hasIpu7Info), VOID_VALUE, "%s, failed to open PCI device. error: %s", __func__, dlerror()); - std::string libName = "/usr/lib/"; + std::string libName = CAMHAL_PLUGIN_DIR; if (strstr(gPciId, "0xa75d") != nullptr /* RPL */ || strstr(gPciId, "0x462e") != nullptr /* ADLN */ || strstr(gPciId, "0x465d") != nullptr /* ADLP */) { - libName += "ipu_adl"; + libName += "ipu6ep"; } else if (strstr(gPciId, "0x7d19") != nullptr /* MTL */) { - libName += "ipu_mtl"; + libName += "ipu6epmtl"; } else if (strstr(gPciId, "0x645d") != nullptr /* LNL */) { - libName += "ipu_lnl"; + libName += "ipu7x"; + } else if (strstr(gPciId, "0xb05d") != nullptr /* PTL */) { + libName += "ipu75xa"; } else if (strstr(gPciId, "0x9a19") != nullptr /* TGL */) { - libName += "ipu_tgl"; + libName += "ipu6"; } else if (strstr(gPciId, "0x4e19") != nullptr /* JSL */) { - libName += "ipu_jsl"; + libName += "ipu6sepla"; } else { LOGE("%s, Not support the PCI device %s for hal adaptor API", __func__, gPciId); return; } - if (hasIpu6Info && gUpstreamIpuDriver) { - libName += "_upstream"; - } - libName += "/libcamhal.so"; + libName += ".so"; LOG1("%s, the library name: %s", __func__, libName.c_str()); gCameraHalLib = dlopen(libName.c_str(), RTLD_NOW); diff --git a/src/hal/hal_adaptor/HalAdaptor.h b/src/hal/hal_adaptor/HalAdaptor.h index cca1dab0..3c5c3275 100644 --- a/src/hal/hal_adaptor/HalAdaptor.h +++ b/src/hal/hal_adaptor/HalAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023 Intel Corporation. + * Copyright (C) 2023-2024 Intel Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/hal/hal_adaptor/hal_adaptor.pc.cmakein b/src/hal/hal_adaptor/hal_adaptor.pc.cmakein deleted file mode 100644 index e77e7178..00000000 --- a/src/hal/hal_adaptor/hal_adaptor.pc.cmakein +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include/hal_adaptor - -Name: libhal_adaptor -Description: Camera HAL Adaptor Library -URL: -Version: @VERSION@ -Libs: -L${libdir} -lhal_adaptor -Cflags: -I${includedir} -I${includedir}/api -I${includedir}/utils diff --git a/src/platformdata/CameraParser.cpp b/src/platformdata/CameraParser.cpp index defffab7..697b7e3c 100644 --- a/src/platformdata/CameraParser.cpp +++ b/src/platformdata/CameraParser.cpp @@ -49,8 +49,11 @@ CameraParser::CameraParser(MediaControl* mc, PlatformData::StaticCfg* cfg) mCurrentDataField(FIELD_INVALID), mSensorNum(0), mCurrentSensor(0), + mCaptureIdLinkIndex(0), + mCaptureIdIndex(0), pCurrentCam(nullptr), mInMediaCtlCfg(false), + mSkipMediaCtlCfg(false), mInStaticMetadata(false), mMC(mc), mMetadataCache(nullptr), @@ -58,6 +61,8 @@ CameraParser::CameraParser(MediaControl* mc, PlatformData::StaticCfg* cfg) LOG1("@%s", __func__); CheckAndLogError(cfg == nullptr, VOID_VALUE, "@%s, cfg is nullptr", __func__); + memset(mCaptureId, 0, sizeof(mCaptureId)); + // Get common data from libcamhal_profile.xml int ret = getDataFromXmlFile(LIBCAMHAL_PROFILE_NAME); CheckAndLogError(ret != OK, VOID_VALUE, "Failed to get libcamhal profile data from %s", @@ -132,12 +137,14 @@ CameraParser::~CameraParser() { * one example: "imx319 $I2CBUS" * Replacing $CSI_PORT with the real mCsiPort if the value contains the string "$CSI_PORT" * one example: "Intel IPU6 CSI-2 $CSI_PORT" or "Intel IPU6 CSI2 $CSI_PORT" + * Replacing $CAPTURE_ID with the real mCaptureId if the value contains the string "$CAPTURE_ID" * * \param profiles: the pointer of the CameraParser. * \param value: camera information. * \return: if the value contains the string, it will be replaced. */ -string CameraParser::replaceStringInXml(CameraParser* profiles, const char* value) { +string CameraParser::replaceStringInXml(CameraParser* profiles, const char* value, + const char* name) { string valueTmp; CheckAndLogError(value == nullptr, valueTmp, "value is nullptr"); @@ -147,6 +154,20 @@ string CameraParser::replaceStringInXml(CameraParser* profiles, const char* valu valueTmp.replace(found, sizeof("$I2CBUS"), profiles->mI2CBus); } else if ((found = valueTmp.find("$CSI_PORT")) != string::npos) { valueTmp.replace(found, sizeof("$CSI_PORT"), profiles->mCsiPort); + } else if ((found = valueTmp.find("$CAPTURE_ID")) != string::npos) { + if (strcmp(name, "link") == 0 && profiles->mCaptureIdLinkIndex < IPU_ISYS_CAPTURE_ID_MAX) { + int captureId = std::stoi(profiles->mCsiPort) * 8 + profiles->mCaptureIdLinkIndex; + valueTmp.replace(found, sizeof("$CAPTURE_ID"), std::to_string(captureId)); + profiles->mCaptureId[profiles->mCaptureIdLinkIndex] = captureId; + profiles->mCaptureIdLinkIndex++; + profiles->mCaptureIdIndex = 0; + } else if (strcmp(name, "videonode") == 0 && + profiles->mCaptureIdIndex < IPU_ISYS_CAPTURE_ID_MAX) { + valueTmp.replace(found, sizeof("$CAPTURE_ID"), + std::to_string(profiles->mCaptureId[profiles->mCaptureIdIndex])); + profiles->mCaptureIdIndex++; + profiles->mCaptureIdLinkIndex = 0; + } } return valueTmp; @@ -838,6 +859,7 @@ int CameraParser::parseLardTags(const char* str, vector& lardTags void CameraParser::parseMediaCtlConfigElement(CameraParser* profiles, const char* name, const char** atts) { MediaCtlConf mc; + bool skipMediaCtlCfg = true; int idx = 0; while (atts[idx]) { @@ -857,10 +879,22 @@ void CameraParser::parseMediaCtlConfigElement(CameraParser* profiles, const char } else if (strcmp(key, "vbp") == 0) { mc.vbp = strtoul(atts[idx + 1], nullptr, 10); // DOL_FEATURE_E + } else if (strcmp(key, "mediaCfg") == 0) { + skipMediaCtlCfg = false; + if (strtol(atts[idx + 1], nullptr, 10) != profiles->mStaticCfg->mMediaCfgId) { + profiles->mSkipMediaCtlCfg = true; + return; + } } idx += 2; } + if (profiles->mSkipMediaCtlCfg || + (skipMediaCtlCfg && profiles->mStaticCfg->mMediaCfgId == IPU6_UPSTREAM_MEDIA_CFG)) { + profiles->mSkipMediaCtlCfg = true; + return; + } + LOG2("@%s, name:%s, atts[0]:%s, id: %d", __func__, name, atts[0], mc.mcId); // Add a new empty MediaControl Configuration profiles->pCurrentCam->mMediaCtlConfs.push_back(mc); @@ -879,7 +913,7 @@ void CameraParser::parseControlElement(CameraParser* profiles, const char* name, const char* val = atts[idx + 1]; LOG2("@%s, name:%s, atts[%d]:%s, atts[%d]:%s", __func__, name, idx, key, idx + 1, val); if (strcmp(key, "name") == 0) { - ctl.entityName = replaceStringInXml(profiles, val); + ctl.entityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { ctl.entity = profiles->mMC->getEntityIdByName(ctl.entityName.c_str()); } @@ -956,7 +990,7 @@ void CameraParser::parseSelectionElement(CameraParser* profiles, const char* nam const char* val = atts[idx + 1]; LOG2("@%s, name:%s, atts[%d]:%s, atts[%d]:%s", __func__, name, idx, key, idx + 1, val); if (strcmp(key, "name") == 0) { - sel.entityName = replaceStringInXml(profiles, val); + sel.entityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { sel.entity = profiles->mMC->getEntityIdByName(sel.entityName.c_str()); } @@ -1299,7 +1333,7 @@ void CameraParser::parseFormatElement(CameraParser* profiles, const char* name, const char* val = atts[idx + 1]; LOG2("@%s, name:%s, atts[%d]:%s, atts[%d]:%s", __func__, name, idx, key, idx + 1, val); if (strcmp(key, "name") == 0) { - fmt.entityName = replaceStringInXml(profiles, val); + fmt.entityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { fmt.entity = profiles->mMC->getEntityIdByName(fmt.entityName.c_str()); } @@ -1345,14 +1379,14 @@ void CameraParser::parseLinkElement(CameraParser* profiles, const char* name, co const char* val = atts[idx + 1]; LOG2("@%s, name:%s, atts[%d]:%s, atts[%d]:%s", __func__, name, idx, key, idx + 1, val); if (strcmp(key, "srcName") == 0) { - link.srcEntityName = replaceStringInXml(profiles, val); + link.srcEntityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { link.srcEntity = profiles->mMC->getEntityIdByName(link.srcEntityName.c_str()); } } else if (strcmp(key, "srcPad") == 0) { link.srcPad = strtoul(val, nullptr, 10); } else if (strcmp(key, "sinkName") == 0) { - link.sinkEntityName = replaceStringInXml(profiles, val); + link.sinkEntityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { link.sinkEntity = profiles->mMC->getEntityIdByName(link.sinkEntityName.c_str()); } @@ -1379,7 +1413,7 @@ void CameraParser::parseRouteElement(CameraParser* profiles, const char* name, c const char* val = atts[idx + 1]; LOG2("@%s, name:%s, atts[%d]:%s, atts[%d]:%s", __func__, name, idx, key, idx + 1, val); if (strcmp(key, "name") == 0) { - route.entityName = replaceStringInXml(profiles, val); + route.entityName = replaceStringInXml(profiles, val, name); if (profiles->mMC) { route.entity = profiles->mMC->getEntityIdByName(route.entityName.c_str()); } @@ -1400,12 +1434,12 @@ void CameraParser::parseRouteElement(CameraParser* profiles, const char* name, c mc.routes.push_back(route); } -void CameraParser::parseVideoElement(CameraParser* profiles, const char* /*name*/, +void CameraParser::parseVideoElement(CameraParser* profiles, const char* name, const char** atts) { McVideoNode videoNode; MediaCtlConf& mc = profiles->pCurrentCam->mMediaCtlConfs.back(); - videoNode.name = replaceStringInXml(profiles, atts[1]); + videoNode.name = replaceStringInXml(profiles, atts[1], name); videoNode.videoNodeType = GetNodeType(atts[3]); LOG2("@%s, name:%s, videoNodeType:%d", __func__, videoNode.name.c_str(), videoNode.videoNodeType); @@ -1716,6 +1750,10 @@ int CameraParser::getSupportedFormat(const char* str, vector& supportedForm void CameraParser::handleMediaCtlCfg(CameraParser* profiles, const char* name, const char** atts) { LOG2("@%s, name:%s, atts[0]:%s, profiles->mCurrentSensor:%d", __func__, name, atts[0], profiles->mCurrentSensor); + + if (profiles->mSkipMediaCtlCfg) + return; + if (strcmp(name, "MediaCtlConfig") == 0) { parseMediaCtlConfigElement(profiles, name, atts); } else if (strcmp(name, "link") == 0) { @@ -2132,6 +2170,7 @@ void CameraParser::endParseElement(void* userData, const char* name) { if (strcmp(name, "MediaCtlConfig") == 0) { LOG2("@%s %s, mInMediaCtlCfg is set to false", __func__, name); profiles->mInMediaCtlCfg = false; + profiles->mSkipMediaCtlCfg = false; } if (strcmp(name, "StaticMetadata") == 0) { @@ -2304,13 +2343,14 @@ void CameraParser::getNVMDirectory(CameraParser* profiles) { * */ std::vector CameraParser::getAvailableSensors( - const std::string& ipuName, const std::vector& sensorsList) { + const std::string& ipuName, const std::vector& sensorsList, int mediaCfgId) { LOG2("@%s, ipuName:%s", __func__, ipuName.c_str()); // sensor's sink entity name prefix:"Intel IPU6 CSI-2 2" or "Intel IPU6 CSI2 2" std::string sensorSinkName = "Intel "; sensorSinkName.append(ipuName); - if (IPU6_UPSTREAM) + + if (mediaCfgId == IPU6_UPSTREAM_MEDIA_CFG) sensorSinkName.append(" CSI2 "); else sensorSinkName.append(" CSI-2 "); @@ -2322,9 +2362,11 @@ std::vector CameraParser::getAvailableSensors( if (mMC && mMC->checkAvailableSensor(sensor)) { availableSensors.push_back(sensor); LOG2("@%s, available sensor name: %s", __func__, sensor.c_str()); +#ifdef LINUX_BUILD } else if (sensor.find("_usb") != string::npos) { - availableSensors.push_back(sensor); - LOG2("@%s, available usb sensor name: %s", __func__, sensor.c_str()); + availableSensors.push_back(sensor); + LOG2("@%s, available usb sensor name: %s", __func__, sensor.c_str()); +#endif } } else { @@ -2368,7 +2410,8 @@ void CameraParser::getSensorDataFromXmlFile(void) { // According to sensor name to get sensor data LOG1("%s, available sensors: %zu", __func__, mStaticCfg->mCommonConfig.availableSensors.size()); vector allSensors = getAvailableSensors(mStaticCfg->mCommonConfig.ipuName, - mStaticCfg->mCommonConfig.availableSensors); + mStaticCfg->mCommonConfig.availableSensors, + mStaticCfg->mMediaCfgId); if (allSensors.size() == 0) { LOGW("The style of libcamhal_profile is too old, please switch it as soon as possible !!!"); diff --git a/src/platformdata/CameraParser.h b/src/platformdata/CameraParser.h index 9782bd67..025c424e 100644 --- a/src/platformdata/CameraParser.h +++ b/src/platformdata/CameraParser.h @@ -74,6 +74,7 @@ struct CameraModuleInfo { #define CAMERA_MODULE_INFO_OFFSET 32 #define CAMERA_MODULE_INFO_SIZE 32 #define DEFAULT_MODULE_NAME "default" +#define IPU_ISYS_CAPTURE_ID_MAX 8 /** * \class CameraParser * @@ -96,6 +97,15 @@ class CameraParser : public ParserBase { int mCurrentSensor; std::string mI2CBus; std::string mCsiPort; + + /** + * mCaptureId is used to store Intel IPU6 ISYS Capture Id for each sensor. + * When parse Link, if it has video capture, mCaptureIdLinkIndex will add, and put value + * into mCaptureId. Otherwise, mCaptureIdIndex will add and get value from mCaptureId. + */ + int mCaptureId[IPU_ISYS_CAPTURE_ID_MAX]; + int mCaptureIdLinkIndex; + int mCaptureIdIndex; struct AvailableSensorInfo { std::string sinkEntityName; bool sensorFlag; @@ -103,6 +113,7 @@ class CameraParser : public ParserBase { std::unordered_map mAvailableSensor; PlatformData::StaticCfg::CameraInfo* pCurrentCam; bool mInMediaCtlCfg; + bool mSkipMediaCtlCfg; bool mInStaticMetadata; MediaControl* mMC; CameraMetadata mMetadata; @@ -131,7 +142,8 @@ class CameraParser : public ParserBase { char** endptr = nullptr); std::vector getAvailableSensors(const std::string& ipuName, - const std::vector& sensorsList); + const std::vector& sensorsList, + int mediaCfgId); void getSensorDataFromXmlFile(void); void getCsiPortAndI2CBus(CameraParser* profiles); void checkField(CameraParser* profiles, const char* name, const char** atts); @@ -174,7 +186,7 @@ class CameraParser : public ParserBase { void parseOutputMap(const char* str, std::vector& outputMap); - std::string replaceStringInXml(CameraParser* profiles, const char* value); + std::string replaceStringInXml(CameraParser* profiles, const char* value, const char* name); void getNVMDirectory(CameraParser* profiles); int getCameraModuleNameFromEEPROM(PlatformData::StaticCfg::CameraInfo* cam); diff --git a/src/platformdata/PlatformData.cpp b/src/platformdata/PlatformData.cpp index 1cb6705b..37db7486 100644 --- a/src/platformdata/PlatformData.cpp +++ b/src/platformdata/PlatformData.cpp @@ -62,6 +62,7 @@ PlatformData::PlatformData() { MediaControl* mc = MediaControl::getInstance(); if (mc) { mc->initEntities(); + mStaticCfg.mMediaCfgId = mc->getMediaCfgId(); } CameraParser CameraParser(mc, &mStaticCfg); @@ -1556,14 +1557,10 @@ bool PlatformData::isCSIBackEndCapture(int cameraId) { CheckAndLogError(!mc, false, "getMediaCtlConf returns nullptr, cameraId:%d", cameraId); for (const auto& node : mc->videoNodes) { - if (IPU6_UPSTREAM && node.videoNodeType == VIDEO_GENERIC && - node.name.find("ISYS capture") != string::npos) { - isCsiBECapture = true; - break; - } if (node.videoNodeType == VIDEO_GENERIC && (node.name.find("BE capture") != string::npos || - node.name.find("BE SOC capture") != string::npos)) { + node.name.find("BE SOC capture") != string::npos || + node.name.find("ISYS capture") != string::npos)) { isCsiBECapture = true; break; } @@ -1578,13 +1575,10 @@ bool PlatformData::isCSIFrontEndCapture(int cameraId) { CheckAndLogError(!mc, false, "getMediaCtlConf returns nullptr, cameraId:%d", cameraId); for (const auto& node : mc->videoNodes) { - if (IPU6_UPSTREAM && node.videoNodeType == VIDEO_GENERIC && - node.name.find("CSI2") != string::npos) { - isCsiFeCapture = true; - break; - } if (node.videoNodeType == VIDEO_GENERIC && - (node.name.find("CSI-2") != string::npos || node.name.find("TPG") != string::npos)) { + (node.name.find("CSI-2") != string::npos || + node.name.find("TPG") != string::npos || + node.name.find("CSI2") != string::npos)) { isCsiFeCapture = true; break; } @@ -1756,10 +1750,6 @@ camera_coordinate_system_t PlatformData::getActivePixelArray(int cameraId) { string PlatformData::getCameraCfgPath() { string cfgPath = string(CAMERA_DEFAULT_CFG_PATH); -#ifdef SUB_CONFIG_PATH - cfgPath += string(SUB_CONFIG_PATH); - cfgPath.append("/"); -#endif char* p = getenv("CAMERA_CFG_PATH"); return p ? string(p) : cfgPath; @@ -2004,6 +1994,10 @@ void PlatformData::setV4L2BufType(int cameraId, v4l2_buf_type v4l2BufType) { getInstance()->mStaticCfg.mCameras[cameraId].mV4l2BufType = v4l2BufType; } +int PlatformData::getMediaCfgId() { + return getInstance()->mStaticCfg.mMediaCfgId; +} + // LEVEL0_ICBM_S bool PlatformData::isGPUICBMEnabled() { return getInstance()->mStaticCfg.mCommonConfig.isGPUICBMEnabled; diff --git a/src/platformdata/PlatformData.h b/src/platformdata/PlatformData.h index e04c21cc..59699f6d 100644 --- a/src/platformdata/PlatformData.h +++ b/src/platformdata/PlatformData.h @@ -89,11 +89,14 @@ namespace icamera { #define MAX_CAMERA_NUMBER 100 // Temporarily using current path to save aiqd file for none CAL platforms. #define CAMERA_CACHE_DIR "./" -#define CAMERA_DEFAULT_CFG_PATH "/etc/camera/" #define CAMERA_GRAPH_DESCRIPTOR_FILE "gcss/graph_descriptor.xml" #define CAMERA_GRAPH_SETTINGS_DIR "gcss/" #endif +#ifndef CAMERA_DEFAULT_CFG_PATH +#error CAMERA_DEFAULT_CFG_PATH not defined +#endif + #define NVM_DATA_PATH "/sys/bus/i2c/devices/" #define TNR7US_RESTART_THRESHOLD 5 @@ -108,7 +111,8 @@ class PlatformData { public: class StaticCfg { public: - StaticCfg() { mCameras.clear(); } + StaticCfg() + : mMediaCfgId(IPU6_DOWNSTREAM_MEDIA_CFG) { mCameras.clear(); } ~StaticCfg() {} // not release resource by design /** @@ -378,6 +382,7 @@ class PlatformData { std::vector mPolicyConfig; CommonConfig mCommonConfig; std::string mBoardName; + int mMediaCfgId; }; private: @@ -1853,6 +1858,13 @@ class PlatformData { */ static void setV4L2BufType(int cameraId, v4l2_buf_type v4l2BufType); + /** + * Get media configuration ID + * + * \return media configuration ID + */ + static int getMediaCfgId(); + // LEVEL0_ICBM_S /** * Check GPU ICBM is enabled or not diff --git a/src/v4l2/MediaControl.cpp b/src/v4l2/MediaControl.cpp index 4284e6a6..54158cc3 100644 --- a/src/v4l2/MediaControl.cpp +++ b/src/v4l2/MediaControl.cpp @@ -127,7 +127,9 @@ void MediaControl::releaseInstance() { } } -MediaControl::MediaControl(const char* devName) : mDevName(devName) { +MediaControl::MediaControl(const char* devName) + : mDevName(devName), + mMediaCfgId(IPU6_DOWNSTREAM_MEDIA_CFG) { LOG1("@%s device: %s", __func__, devName); } @@ -425,6 +427,7 @@ void MediaControl::dumpEntityDesc(media_entity_desc& desc, media_device_info& de } int MediaControl::enumEntities(int fd, media_device_info& devInfo) { + int mediaCfgId = IPU6_MEDIA_CFG_MAX; MediaEntity entity; uint32_t id; int ret; @@ -440,6 +443,14 @@ int MediaControl::enumEntities(int fd, media_device_info& devInfo) { break; } + if (mediaCfgId == IPU6_MEDIA_CFG_MAX) { + if (!strncmp(entity.info.name, IPU6_DOWNSTREAM_ENTITY, strlen(IPU6_DOWNSTREAM_ENTITY))) + mediaCfgId = IPU6_DOWNSTREAM_MEDIA_CFG; + else if (!strncmp(entity.info.name, IPU6_UPSTREAM_ENTITY, + strlen(IPU6_UPSTREAM_ENTITY))) + mediaCfgId = IPU6_UPSTREAM_MEDIA_CFG; + } + if (Log::isDumpMediaInfo()) dumpEntityDesc(entity.info, devInfo); /* Number of links (for outbound links) plus number of pads (for @@ -465,7 +476,21 @@ int MediaControl::enumEntities(int fd, media_device_info& devInfo) { } } - return ret; + if (ret != 0) + return ret; + + if (mediaCfgId != IPU6_MEDIA_CFG_MAX) + mMediaCfgId = mediaCfgId; + + if ((!strcmp(devInfo.model, IPU6_DOWNSTREAM_DEV_MODEL) && + mMediaCfgId != IPU6_DOWNSTREAM_MEDIA_CFG) || + (!strcmp(devInfo.model, IPU6_UPSTREAM_DEV_MODEL) && + mMediaCfgId != IPU6_UPSTREAM_MEDIA_CFG)) { + LOGE("Invalid media configuration id %d for %s", mMediaCfgId, devInfo.model); + return -EINVAL; + } + + return OK; } int MediaControl::getDevnameFromSysfs(MediaEntity* entity) { diff --git a/src/v4l2/MediaControl.h b/src/v4l2/MediaControl.h index 540937f9..39174c5f 100644 --- a/src/v4l2/MediaControl.h +++ b/src/v4l2/MediaControl.h @@ -51,6 +51,16 @@ struct MediaLink; #define MEDIA_CTL_DEV_NAME "/dev/media" #define MEDIA_DRIVER_NAME "intel-ipu" #define MEDIA_DEVICE_MAX_NUM 256 +#define IPU6_DOWNSTREAM_ENTITY "Intel IPU6 CSI-2" +#define IPU6_UPSTREAM_ENTITY "Intel IPU6 CSI2" +#define IPU6_DOWNSTREAM_DEV_MODEL "ipu6-downstream" +#define IPU6_UPSTREAM_DEV_MODEL "ipu6" + +enum { + IPU6_DOWNSTREAM_MEDIA_CFG = 0, + IPU6_UPSTREAM_MEDIA_CFG = 1, + IPU6_MEDIA_CFG_MAX, +}; enum { FC_FORMAT = 0, @@ -300,6 +310,8 @@ class MediaControl { int getI2CBusAddress(const std::string& sensorEntityName, const std::string& sinkEntityName, std::string* i2cBus); + int getMediaCfgId() { return mMediaCfgId; } + private: MediaControl& operator=(const MediaControl&); MediaControl(const char* devName); @@ -353,6 +365,8 @@ class MediaControl { static MediaControl* sInstance; static Mutex sLock; + + int mMediaCfgId; }; } // namespace icamera