You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

98 lines
2.5 KiB

#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