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 <grajagop@codeaurora.org>
This commit is contained in:
Govindaraj Rajagopal 2020-11-06 12:30:03 +05:30
commit f607704b44

View file

@ -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);
}