diff --git a/include/uapi/camera/media/cam_isp.h b/include/uapi/camera/media/cam_isp.h index 0986891c78..1594a205f9 100644 --- a/include/uapi/camera/media/cam_isp.h +++ b/include/uapi/camera/media/cam_isp.h @@ -135,6 +135,7 @@ #define CAM_ISP_GENERIC_BLOB_TYPE_SFE_EXP_ORDER_CFG 27 #define CAM_ISP_GENERIC_BLOB_TYPE_DRV_CONFIG 28 #define CAM_ISP_GENERIC_BLOB_TYPE_BW_CONFIG_V3 29 +#define CAM_ISP_GENERIC_BLOB_TYPE_NFI_MODE_SWITCH 30 #define CAM_ISP_VC_DT_CFG 4 @@ -184,6 +185,7 @@ #define CAM_ISP_SFE_SHDR_MODE_EN BIT(6) #define CAM_ISP_AEB_MODE_EN BIT(7) #define CAM_ISP_HDR_MODE_DYNAMIC_SWITCH_EN BIT(8) +#define CAM_ISP_NFI_BASED_MODE_SWITCH_EN BIT(9) /* ISP core cfg flag params */ #define CAM_ISP_PARAM_CORE_CFG_HDR_MUX_SEL BIT(0) @@ -948,6 +950,33 @@ struct cam_isp_mode_switch_info{ __u32 reserved; } __attribute__((packed)); +/** + * struct cam_isp_nfi_mode_switch_info - New Frame ID (NFI) Based Switching Scheme info + * + * @version : Version info + * @mode_id : Mode ID value for the next frame + * @modeid_vc : The VC with which the embedded packet with MODE ID comes with. + * @x_offset : X offset of MODE ID location in horizontal + * direction within single EBD line packet, unit is byte. + * @y_offset : Y offset of MODE ID location in vertical direction + * within EBD Lines, unit is line packet. + * @reg_length : Number of bytes for each MODE ID + * @num_valid_params : Number of valid params + * @param_mask : Mask to indicate fields in params + * @params : Additional Params + */ +struct cam_isp_nfi_mode_switch_info { + __u32 version; + __u32 mode_id; + __u32 modeid_vc; + __u32 x_offset; + __u32 y_offset; + __u32 reg_length; + __u32 num_valid_params; + __u32 param_mask; + __u32 params[4]; +} __attribute__((packed)); + /** * struct cam_isp_sfe_wm_exp_order_config - SFE write master * exposure order config