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