From f607704b4476b70290c8d2992be4a61d39edfb77 Mon Sep 17 00:00:00 2001 From: Govindaraj Rajagopal Date: Fri, 6 Nov 2020 12:30:03 +0530 Subject: [PATCH] msm: vidc: fix msm_vidc_err_recovery_disable for non_noc_err disable error_recovery for non-NOC error if VIDC_DISABLE_NON_NOC_ERR_RECOV is set. but error_recovery is getting disabled even for type NOC error when VIDC_DISABLE_NON_NOC_ERR_RECOV is set. [1] Only NOC error adb shell "echo 1 > /d/msm_vidc/disable_err_recovery" [2] Only non-NOC error adb shell "echo 2 > /d/msm_vidc/disable_err_recovery" [3] Both NOC & non-NOC error adb shell "echo 3 > /d/msm_vidc/disable_err_recovery" Change-Id: Ia09ca23708d41a77f1d77cf6ed57506a16b32c73 Signed-off-by: Govindaraj Rajagopal --- msm/vidc/msm_vidc_common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/msm/vidc/msm_vidc_common.c b/msm/vidc/msm_vidc_common.c index cfeeb7dfe0de..dbbff4d938be 100644 --- a/msm/vidc/msm_vidc_common.c +++ b/msm/vidc/msm_vidc_common.c @@ -2168,6 +2168,7 @@ static void handle_sys_error(enum hal_command_response cmd, void *data) struct hfi_device *hdev = NULL; struct msm_vidc_inst *inst = NULL; int rc = 0; + bool panic = false; subsystem_crashed("venus"); if (!response) { @@ -2203,12 +2204,11 @@ static void handle_sys_error(enum hal_command_response cmd, void *data) } /* handle the hw error before core released to get full debug info */ - msm_vidc_handle_hw_error(core); - if ((response->status == VIDC_ERR_NOC_ERROR && - (msm_vidc_err_recovery_disable & - VIDC_DISABLE_NOC_ERR_RECOV)) || - (msm_vidc_err_recovery_disable & - VIDC_DISABLE_NON_NOC_ERR_RECOV)) { + if (response->status == VIDC_ERR_NOC_ERROR) + panic = !!(msm_vidc_err_recovery_disable & VIDC_DISABLE_NOC_ERR_RECOV); + else + panic = !!(msm_vidc_err_recovery_disable & VIDC_DISABLE_NON_NOC_ERR_RECOV); + if (panic) { d_vpr_e("Got unrecoverable video fw error"); MSM_VIDC_ERROR(true); }