소스 검색

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

Haritha Chintalapati 4 년 전
부모
커밋
1a11831377

+ 2 - 0
drivers/cam_isp/cam_isp_context.c

@@ -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";
 	}

+ 4 - 4
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe680.h

@@ -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,

+ 31 - 3
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c

@@ -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:

+ 1 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.h

@@ -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,