#ifndef ARCH_SPEC_H #define ARCH_SPEC_H #include "datatype.h" /* AUTO COPY TO VENDER INC */ #ifdef IK_RELEASE #define STATIC static #define INLINE inline #else #define STATIC #define INLINE #endif #ifndef MAX_CONTEXT_NUM #define MAX_CONTEXT_NUM (16U) #endif #ifndef MAX_CONFIG_NUM #define MAX_CONFIG_NUM (10U) #endif #define MAX_CONTAINER_IDSP_CMD_NUM (10U) #define MAX_CONTAINER_VIN_CMD_NUM (10U) #define MAX_VIN_NUM (4U) #define IK_MAX_HDR_EXPOSURE_NUM (3U) #define CONTAINER_CMD_SIZE (128U) #define AMP_TABLE_SIZE (353) #define AMBA_IK_PIPE_VIDEO (0x0U) #define AMBA_IK_PIPE_STILL (0x1U) #define AMBA_IK_ALGO_MODE_LISO (0x0U) #define IK_WAIT_FOREVER (0xFFFFFFFFUL) typedef enum { AMBA_IK_VIDEO_STILL_MAX = 0, } amba_ik_still_pipe_ability_t; typedef enum { AMBA_IK_VIDEO_PIPE_LINEAR = 0U, AMBA_IK_VIDEO_PIPE_LINEAR_CE, AMBA_IK_VIDEO_PIPE_HDR_EXPO_2, AMBA_IK_VIDEO_PIPE_HDR_EXPO_3, AMBA_IK_VIDEO_PIPE_LINEAR_MD, AMBA_IK_VIDEO_PIPE_LINEAR_CE_MD, AMBA_IK_VIDEO_PIPE_HDR_EXPO_2_MD, AMBA_IK_VIDEO_PIPE_HDR_EXPO_3_MD, AMBA_IK_VIDEO_PIPE_Y2Y, AMBA_IK_VIDEO_PIPE_FUSION_CE_MD, AMBA_IK_VIDEO_PIPE_FUSION_CE, AMBA_IK_VIDEO_PIPE_MAX, } amba_ik_video_pipe_ability_t; typedef enum { amba_ik_init_mode_hard_init = 0x00U, amba_ik_init_mode_soft_init = 0x01U, }amba_ik_init_mode_t; typedef enum { amba_ik_func_mode_fv = 0x00U, amba_ik_func_mode_qv = 0x01U, amba_ik_func_mode_piv = 0X02U, amba_ik_func_mode_r2r = 0x04U, amba_ik_func_mode_vhdr = 0x08U, amba_ik_func_mode_y2y = 0x10U, amba_ik_func_mode_md = 0x20U, amba_ik_func_mode_y2y_bypass, } amba_ik_func_mode_t; typedef struct { uint8 pipe; amba_ik_still_pipe_ability_t still_pipe; amba_ik_video_pipe_ability_t video_pipe; } ik_ability_t; typedef struct { uint32 iso_config_common_update : 1 ; uint32 iso_config_color_update : 1 ; uint32 iso_config_mctf_update : 1 ; uint32 iso_config_step1_update : 1 ; uint32 iso_config_aaa_update : 1 ; // AAA setup update uint32 iso_config_extra_update : 1 ; uint32 iso_config_motion_update : 1 ; uint32 iso_config_exp_update : 1 ; uint32 reserved : 24; } ik_iso_config_update; typedef struct { uint32 ik_id; void *p_iso_cfg; ik_iso_config_update update; } ik_execute_container_t; #define AMBA_IK_RVAL_SUCCESS (0UL) #define AMBA_IK_RVAL_ERROR (0xFFFFFFFFUL) #define AMBA_IK_RVAL_AAA_SETUP_INVALID (0xFFFFFFFFUL-1UL) #define AMBA_IK_RVAL_CTX_SIZE_ERROR (0xFFFFFFFFUL-2UL) #endif