From 00f2e3e6dc4b41a41827925261c51ce3ab503e96 Mon Sep 17 00:00:00 2001 From: Umesh Pandey Date: Wed, 5 Oct 2016 14:44:51 -0700 Subject: [PATCH] msm: vidc: Selectively handle SYS_ERROR as FATAL User SSR triggers a SYS_ERROR from the hardware. However the driver cannot detect if the error is due to user SSR or other reasons. Handle SYS_ERROR due to user SSR as non-fatal CRs-Fixed: 1054921 Change-Id: I4151b6bfb24e55c1f1a38bfdca012f7b7af86603 Signed-off-by: Umesh Pandey --- drivers/media/platform/msm/vidc/msm_vidc_common.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c index 40643239712f..a6563aae4c8c 100644 --- a/drivers/media/platform/msm/vidc/msm_vidc_common.c +++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c @@ -4792,9 +4792,20 @@ int msm_vidc_trigger_ssr(struct msm_vidc_core *core, return -EINVAL; } hdev = core->device; - if (core->state == VIDC_CORE_INIT_DONE) + if (core->state == VIDC_CORE_INIT_DONE) { + /* + * In current implementation user-initiated SSR triggers + * a fatal error from hardware. However, there is no way + * to know if fatal error is due to SSR or not. Handle + * user SSR as non-fatal. + */ + mutex_lock(&core->lock); + core->resources.debug_timeout = false; + mutex_unlock(&core->lock); rc = call_hfi_op(hdev, core_trigger_ssr, hdev->hfi_device_data, type); + } + return rc; }