Merge "msm: camera: isp: Fix config of vfe out ports" into camera-kernel.lnx.5.0

This commit is contained in:
Haritha Chintalapati
2021-04-07 16:29:07 -07:00
committed by Gerrit - the friendly Code Review server
4 changed files with 38 additions and 7 deletions

View File

@@ -584,6 +584,8 @@ static const char *__cam_isp_resource_handle_id_to_type(
return "STATS_BG";
case CAM_ISP_IFE_LITE_OUT_RES_PREPROCESS_RAW:
return "PREPROCESS_RAW";
case CAM_ISP_IFE_OUT_RES_SPARSE_PD:
return "SPARSE_PD";
default:
return "CAM_ISP_Invalid_Resource_Type";
}

View File

@@ -1246,7 +1246,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_10,
.ubwc_regs = NULL,
},
/* BUS Client 20 CAMIF PD - PDAF */
/* BUS Client 20 SPARSE PD */
{
.cfg = 0x00002200,
.image_addr = 0x00002204,
@@ -1604,9 +1604,9 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
},
},
{
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_PDAF,
.max_width = -1,
.max_height = -1,
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_SPARSE_PD,
.max_width = 1920,
.max_height = 1080,
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
.mid[0] = 4,
.num_wm = 1,

View File

@@ -669,6 +669,9 @@ static enum cam_vfe_bus_ver3_vfe_out_type
case CAM_ISP_IFE_OUT_RES_AWB_BFW:
vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW;
break;
case CAM_ISP_IFE_OUT_RES_SPARSE_PD:
vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_SPARSE_PD;
break;
case CAM_ISP_IFE_OUT_RES_PREPROCESS_2PD:
vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_PREPROCESS_2PD;
break;
@@ -798,6 +801,9 @@ static int cam_vfe_bus_ver3_get_comp_vfe_out_res_id_list(
if (comp_mask & (1 << CAM_VFE_BUS_VER3_VFE_OUT_PREPROCESS_RAW))
out_list[count++] = CAM_ISP_IFE_LITE_OUT_RES_PREPROCESS_RAW;
if (comp_mask & (1 << CAM_VFE_BUS_VER3_VFE_OUT_SPARSE_PD))
out_list[count++] = CAM_ISP_IFE_OUT_RES_SPARSE_PD;
*num_out = count;
return 0;
}
@@ -1267,7 +1273,6 @@ static int cam_vfe_bus_ver3_acquire_wm(
rsrc_data->en_cfg = (0x1 << 16) | 0x1;
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_LCR) {
switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN16_16:
rsrc_data->stride = ALIGNUP(rsrc_data->width * 2, 8);
@@ -1283,6 +1288,18 @@ static int cam_vfe_bus_ver3_acquire_wm(
return -EINVAL;
}
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_SPARSE_PD) {
switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN16_16:
rsrc_data->stride = ALIGNUP(rsrc_data->width * 2, 8);
rsrc_data->en_cfg = 0x1;
break;
default:
CAM_ERR(CAM_ISP, "Invalid format %d out_type:%d",
rsrc_data->format, vfe_out_res_id);
return -EINVAL;
}
} else if ((vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_DS4) ||
(vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_DS16) ||
(vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_DS4_DISP) ||
@@ -1292,8 +1309,7 @@ static int cam_vfe_bus_ver3_acquire_wm(
rsrc_data->width = rsrc_data->width / 2;
rsrc_data->en_cfg = 0x1;
} else if ((vfe_out_res_id >= CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW) &&
(vfe_out_res_id <= CAM_VFE_BUS_VER3_VFE_OUT_PREPROCESS_2PD)) {
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW) {
switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN64:
rsrc_data->width = 0;
@@ -1307,6 +1323,18 @@ static int cam_vfe_bus_ver3_acquire_wm(
return -EINVAL;
}
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_PREPROCESS_2PD) {
switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN16_16:
rsrc_data->stride = ALIGNUP(rsrc_data->width * 2, 8);
rsrc_data->en_cfg = 0x1;
break;
default:
CAM_ERR(CAM_ISP, "Invalid format %d out_type:%d",
rsrc_data->format, vfe_out_res_id);
return -EINVAL;
}
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_LTM_STATS) {
switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN32:

View File

@@ -77,6 +77,7 @@ enum cam_vfe_bus_ver3_vfe_out_type {
CAM_VFE_BUS_VER3_VFE_OUT_DS16_DISP,
CAM_VFE_BUS_VER3_VFE_OUT_2PD,
CAM_VFE_BUS_VER3_VFE_OUT_LCR,
CAM_VFE_BUS_VER3_VFE_OUT_SPARSE_PD,
CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW,
CAM_VFE_BUS_VER3_VFE_OUT_PREPROCESS_2PD,
CAM_VFE_BUS_VER3_VFE_OUT_STATS_AEC_BE,