diff --git a/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c b/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c index 006e3e2129..5d00a78d70 100644 --- a/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c +++ b/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c @@ -4520,7 +4520,8 @@ static int cam_ife_mgr_acquire_get_unified_structure_v2( in_port->fe_unpacker_fmt = in->format; in_port->hbi_cnt = in->hbi_cnt; in_port->cust_node = in->cust_node; - in_port->horizontal_bin = in->horizontal_bin; + in_port->horizontal_bin = (in->bidirectional_bin & 0xFFFF); + in_port->vertical_bin = (in->bidirectional_bin >> 16); in_port->qcfa_bin = in->qcfa_bin; in_port->num_out_res = in->num_out_res; in_port->sfe_in_path_type = (in->sfe_in_path_type & 0xFFFF); diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c index 2acc934b53..a1c346ef76 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c @@ -1849,6 +1849,7 @@ static int cam_ife_csid_hw_ver2_config_path_data( path_cfg->crop_enable = reserve->crop_enable; path_cfg->drop_enable = reserve->drop_enable; path_cfg->horizontal_bin = reserve->in_port->horizontal_bin; + path_cfg->vertical_bin = reserve->in_port->vertical_bin; path_cfg->qcfa_bin = reserve->in_port->qcfa_bin; path_cfg->num_bytes_out = reserve->in_port->num_bytes_out; path_cfg->pix_pattern = reserve->in_port->test_pattern; diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/include/cam_ife_csid_hw_intf.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/include/cam_ife_csid_hw_intf.h index ae37ee19e3..fe6082bb79 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/include/cam_ife_csid_hw_intf.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/include/cam_ife_csid_hw_intf.h @@ -120,6 +120,7 @@ struct cam_isp_in_port_generic_info { uint32_t cust_node; uint32_t num_out_res; uint32_t horizontal_bin; + uint32_t vertical_bin; uint32_t qcfa_bin; uint32_t num_bytes_out; uint32_t ipp_count; diff --git a/include/uapi/camera/media/cam_isp.h b/include/uapi/camera/media/cam_isp.h index 42a5071b3b..92a8bdc6cf 100644 --- a/include/uapi/camera/media/cam_isp.h +++ b/include/uapi/camera/media/cam_isp.h @@ -364,7 +364,8 @@ struct cam_isp_in_port_info { * @hbi_cnt: HBI count for the camif input * @cust_node: if any custom HW block is present before IFE * @num_out_res: number of the output resource associated - * @horizontal_bin: Horizontal Binning info + * @bidirectional_bin: [0 : 15] - Set 1 for Horizontal binning + * [16 : 31] - Set 1 for Vertical binning * @qcfa_bin: Quadra Binning info * @sfe_in_path_type: SFE input path type * 0:15 - refer to cam_isp_sfe.h for SFE paths @@ -406,7 +407,7 @@ struct cam_isp_in_port_info_v2 { __u32 cust_node; __u32 num_out_res; __u32 offline_mode; - __u32 horizontal_bin; + __u32 bidirectional_bin; __u32 qcfa_bin; __u32 sfe_in_path_type; __u32 feature_flag;