Prechádzať zdrojové kódy

Merge "msm: camera: cdm: Add Change base for RT-CDM" into camera-kernel.lnx.5.0

Haritha Chintalapati 4 rokov pred
rodič
commit
adef4936f6

+ 7 - 4
drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_common.c

@@ -21,6 +21,7 @@
 #include "cam_ife_csid_common.h"
 #include "cam_ife_csid_hw_ver1.h"
 #include "cam_ife_csid_hw_ver2.h"
+#include "cam_cdm_intf_api.h"
 
 const uint8_t *cam_ife_csid_irq_reg_tag[CAM_IFE_CSID_IRQ_REG_MAX] = {
 	"TOP",
@@ -642,10 +643,12 @@ int cam_ife_csid_get_base(struct cam_hw_soc_info *soc_info,
 		return -EINVAL;
 	}
 
-	mem_base = CAM_SOC_GET_REG_MAP_CAM_BASE(
-		soc_info, base_id);
-	CAM_DBG(CAM_ISP, "core %d mem_base 0x%x",
-		soc_info->index, mem_base);
+	mem_base = CAM_SOC_GET_REG_MAP_CAM_BASE(soc_info, base_id);
+	if (cdm_args->cdm_id == CAM_CDM_RT)
+		mem_base -= CAM_SOC_GET_REG_MAP_CAM_BASE(soc_info, RT_BASE_IDX);
+
+	CAM_DBG(CAM_ISP, "core %d mem_base 0x%x, cdm_id:%u",
+		soc_info->index, mem_base, cdm_args->cdm_id);
 
 	cdm_util_ops->cdm_write_changebase(
 	cdm_args->cmd.cmd_buf_addr, mem_base);

+ 1 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/include/cam_ife_csid_hw_intf.h

@@ -12,6 +12,7 @@
 /* MAX IFE CSID instance */
 #define CAM_IFE_CSID_HW_NUM_MAX                        7
 #define CAM_IFE_CSID_UDI_MAX                           3
+#define RT_BASE_IDX                                    2
 
 /**
  * enum cam_ife_csid_input_core_type - Specify the csid input core

+ 8 - 2
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top_ver4.c

@@ -15,6 +15,7 @@
 #include "cam_isp_hw_mgr_intf.h"
 #include "cam_irq_controller.h"
 #include "cam_tasklet_util.h"
+#include "cam_cdm_intf_api.h"
 
 #define CAM_VFE_HW_RESET_HW_AND_REG_VAL       0x00000001
 #define CAM_VFE_HW_RESET_HW_VAL               0x00010000
@@ -121,8 +122,13 @@ static int cam_vfe_top_ver4_mux_get_base(struct cam_vfe_top_ver4_priv *top_priv,
 
 	mem_base = CAM_SOC_GET_REG_MAP_CAM_BASE(
 		top_priv->common_data.soc_info, VFE_CORE_BASE_IDX);
-	CAM_DBG(CAM_ISP, "core %d mem_base 0x%x",
-		top_priv->common_data.soc_info->index, mem_base);
+	if (cdm_args->cdm_id == CAM_CDM_RT)
+		mem_base -= CAM_SOC_GET_REG_MAP_CAM_BASE(
+			top_priv->common_data.soc_info, RT_BASE_IDX);
+
+	CAM_DBG(CAM_ISP, "core %d mem_base 0x%x, cdm_id: %u",
+		top_priv->common_data.soc_info->index, mem_base,
+		cdm_args->cdm_id);
 
 	cdm_util_ops->cdm_write_changebase(
 		cdm_args->cmd.cmd_buf_addr, mem_base);