Browse Source

Merge "msm: camera: isp: Add support for IFE2" into camera-kernel.lnx.4.0

Camera Software Integration 5 years ago
parent
commit
108ddaf33d

+ 10 - 0
drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

@@ -1439,6 +1439,16 @@ static int cam_convert_hw_idx_to_ife_hw_num(int hw_idx)
 			else if (hw_idx == 4)
 			else if (hw_idx == 4)
 				return CAM_ISP_IFE1_LITE_HW;
 				return CAM_ISP_IFE1_LITE_HW;
 			break;
 			break;
+		case CAM_CPAS_TITAN_170_V200:
+			if (hw_idx == 0)
+				return CAM_ISP_IFE0_HW;
+			else if (hw_idx == 1)
+				return CAM_ISP_IFE1_HW;
+			else if (hw_idx == 2)
+				return CAM_ISP_IFE2_HW;
+			else if (hw_idx == 3)
+				return CAM_ISP_IFE0_LITE_HW;
+			break;
 		default:
 		default:
 			CAM_ERR(CAM_ISP, "Invalid hw_version: 0x%X",
 			CAM_ERR(CAM_ISP, "Invalid hw_version: 0x%X",
 				hw_version);
 				hw_version);

+ 15 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c

@@ -319,6 +319,7 @@ static int cam_vfe_bus_ver2_get_intra_client_mask(
 	case CAM_VFE_BUS_VER2_VFE_CORE_0:
 	case CAM_VFE_BUS_VER2_VFE_CORE_0:
 		switch (dual_slave_core) {
 		switch (dual_slave_core) {
 		case CAM_VFE_BUS_VER2_VFE_CORE_1:
 		case CAM_VFE_BUS_VER2_VFE_CORE_1:
+		case CAM_VFE_BUS_VER2_VFE_CORE_2:
 			*intra_client_mask = version_based_intra_client_mask;
 			*intra_client_mask = version_based_intra_client_mask;
 			break;
 			break;
 		default:
 		default:
@@ -331,6 +332,20 @@ static int cam_vfe_bus_ver2_get_intra_client_mask(
 	case CAM_VFE_BUS_VER2_VFE_CORE_1:
 	case CAM_VFE_BUS_VER2_VFE_CORE_1:
 		switch (dual_slave_core) {
 		switch (dual_slave_core) {
 		case CAM_VFE_BUS_VER2_VFE_CORE_0:
 		case CAM_VFE_BUS_VER2_VFE_CORE_0:
+		case CAM_VFE_BUS_VER2_VFE_CORE_2:
+			*intra_client_mask = version_based_intra_client_mask;
+			break;
+		default:
+			CAM_ERR(CAM_ISP, "Invalid value for slave core %u",
+				dual_slave_core);
+			rc = -EINVAL;
+			break;
+		}
+		break;
+	case CAM_VFE_BUS_VER2_VFE_CORE_2:
+		switch (dual_slave_core) {
+		case CAM_VFE_BUS_VER2_VFE_CORE_0:
+		case CAM_VFE_BUS_VER2_VFE_CORE_1:
 			*intra_client_mask = version_based_intra_client_mask;
 			*intra_client_mask = version_based_intra_client_mask;
 			break;
 			break;
 		default:
 		default:

+ 2 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.h

@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
 /*
- * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
  */
  */
 
 
 #ifndef _CAM_VFE_BUS_VER2_H_
 #ifndef _CAM_VFE_BUS_VER2_H_
@@ -14,6 +14,7 @@
 enum cam_vfe_bus_ver2_vfe_core_id {
 enum cam_vfe_bus_ver2_vfe_core_id {
 	CAM_VFE_BUS_VER2_VFE_CORE_0,
 	CAM_VFE_BUS_VER2_VFE_CORE_0,
 	CAM_VFE_BUS_VER2_VFE_CORE_1,
 	CAM_VFE_BUS_VER2_VFE_CORE_1,
+	CAM_VFE_BUS_VER2_VFE_CORE_2,
 	CAM_VFE_BUS_VER2_VFE_CORE_MAX,
 	CAM_VFE_BUS_VER2_VFE_CORE_MAX,
 };
 };