Browse Source

video: driver: Clear NOC_ErrCLr_low only in power on

 - In noc error handler do not clear
   NOC_ERL_ErrorLogger_main_ErrorLogger_ErrClr_Low, to
   avoid sending any pending transactions, move clearing
   to power on

Change-Id: Ib620f3dcb93b92f2c03eb2126c47d5b97526556d
Signed-off-by: Deepa Guthyappa Madivalara <[email protected]>
Deepa Guthyappa Madivalara 2 năm trước cách đây
mục cha
commit
a9547c3239
1 tập tin đã thay đổi với 13 bổ sung6 xóa
  1. 13 6
      driver/variant/iris33/src/msm_vidc_iris33.c

+ 13 - 6
driver/variant/iris33/src/msm_vidc_iris33.c

@@ -760,7 +760,19 @@ static int __power_on_iris33(struct msm_vidc_core *core)
 
 	__set_registers(core);
 
-	/* Programm NOC error registers before releasing xo reset */
+	/*
+	 * Programm NOC error registers before releasing xo reset
+	 * Clear error logger registers and then enable StallEn
+	 */
+	rc = __write_register(core,
+			NOC_ERL_ERRORLOGGER_MAIN_ERRORLOGGER_ERRCLR_LOW, 0x1);
+	if (rc) {
+		d_vpr_e(
+			"%s: error clearing NOC_MAIN_ERRORLOGGER_ERRCLR_LOW\n",
+			__func__);
+		goto fail_program_noc_regs;
+	}
+
 	rc = __write_register(core,
 			NOC_ERL_ERRORLOGGER_MAIN_ERRORLOGGER_MAINCTL_LOW, 0x3);
 	if (rc) {
@@ -995,11 +1007,6 @@ static int __noc_error_info_iris33(struct msm_vidc_core *core)
 		d_vpr_e("%s: NOC_ERL_ERRORLOGGER_MAIN_ERRORLOGGER_ERRLOG3_LOW:  %#x\n",
 			__func__, value);
 
-	rc = __write_register(core,
-			NOC_ERL_ERRORLOGGER_MAIN_ERRORLOGGER_ERRCLR_LOW, 0x1);
-	if (rc)
-		d_vpr_e("%s: error clearing NOC reg\n", __func__);
-
 	/* release reset control for other consumers */
 	rc = call_res_op(core, reset_control_release, core, "video_xo_reset");
 	if (rc) {