瀏覽代碼

Merge "msm: camera: icp: Print lx7 status registers" into camera-kernel.lnx.5.0

Camera Software Integration 4 年之前
父節點
當前提交
90afbb3e94
共有 3 個文件被更改,包括 16 次插入3 次删除
  1. 3 0
      drivers/cam_icp/hfi.c
  2. 9 2
      drivers/cam_icp/icp_hw/lx7_hw/lx7_core.c
  3. 4 1
      drivers/cam_icp/icp_hw/lx7_hw/lx7_reg.h

+ 3 - 0
drivers/cam_icp/hfi.c

@@ -214,6 +214,9 @@ int hfi_write_cmd(void *cmd_ptr)
 	 */
 	wmb();
 	hfi_irq_raise(g_hfi);
+
+	/* Ensure HOST2ICP trigger is received by FW */
+	wmb();
 err:
 	mutex_unlock(&hfi_cmd_q_mutex);
 	return rc;

+ 9 - 2
drivers/cam_icp/icp_hw/lx7_hw/lx7_core.c

@@ -695,8 +695,15 @@ static int cam_lx7_core_control(
 	if (core_info->use_sec_pil) {
 		rc = qcom_scm_set_remote_state(state, CAM_FW_PAS_ID);
 		if (rc)
-			CAM_ERR(CAM_ICP, "remote state set to %s failed rc=%d",
-				state == TZ_STATE_RESUME ? "resume" : "suspend", rc);
+			CAM_ERR(CAM_ICP,
+				"remote state set to %s failed rc=%d IB_status0=0x%x IB_Status1=0x%x PFault=0x%x",
+				state == TZ_STATE_RESUME ? "resume" : "suspend", rc,
+				cam_io_r_mb(lx7_info->soc_info.reg_map[LX7_CIRQ_BASE].mem_base +
+					ICP_LX7_CIRQ_IB_STATUS0),
+				cam_io_r_mb(lx7_info->soc_info.reg_map[LX7_CIRQ_BASE].mem_base +
+					ICP_LX7_CIRQ_IB_STATUS1),
+				cam_io_r_mb(lx7_info->soc_info.reg_map[LX7_CIRQ_BASE].mem_base +
+					ICP_LX7_CIRQ_PFAULT_INFO));
 	} else {
 		if (state == TZ_STATE_RESUME) {
 			rc = __cam_lx7_power_resume(lx7_info);

+ 4 - 1
drivers/cam_icp/icp_hw/lx7_hw/lx7_reg.h

@@ -30,7 +30,10 @@
 #define ICP_LX7_CIRQ_OB_IRQ_CMD 0x10
 #define LX7_IRQ_CLEAR_CMD       (1 << 1)
 
-#define ICP_LX7_CIRQ_HOST2ICPINT 0x124
+#define ICP_LX7_CIRQ_IB_STATUS0   0x70
+#define ICP_LX7_CIRQ_IB_STATUS1   0x74
+#define ICP_LX7_CIRQ_HOST2ICPINT  0x124
+#define ICP_LX7_CIRQ_PFAULT_INFO  0x128
 #define LX7_HOST2ICPINT          (1 << 0)
 
 #endif /* _CAM_LX7_REG_H_ */