Loading drivers/media/platform/msm/cvp/msm_cvp_common.c +6 −3 Original line number Diff line number Diff line Loading @@ -659,7 +659,9 @@ static void handle_sys_error(enum hal_command_response cmd, void *data) cur_state = core->state; core->state = CVP_CORE_UNINIT; dprintk(CVP_WARN, "SYS_ERROR received for core %pK\n", core); dprintk(CVP_WARN, "SYS_ERROR from core %pK ssr_sess_cnt %lld\n", core, core->ssr_sess_cnt); core->ssr_sess_cnt = 0; msm_cvp_noc_error_info(core); call_hfi_op(hdev, flush_debug_queue, hdev->hfi_device_data); list_for_each_entry(inst, &core->instances, list) { Loading Loading @@ -1367,7 +1369,7 @@ int msm_cvp_trigger_ssr(struct msm_cvp_core *core, void msm_cvp_ssr_handler(struct work_struct *work) { int rc; int rc, max_retries = CVP_MAX_SSR_RETRIES; struct msm_cvp_core *core; struct cvp_hfi_device *hdev; Loading Loading @@ -1427,6 +1429,7 @@ void msm_cvp_ssr_handler(struct work_struct *work) mutex_unlock(&core->lock); usleep_range(500, 1000); dprintk(CVP_WARN, "Retry ssr\n"); if (max_retries-- > 0) goto send_again; } dprintk(CVP_ERR, "%s: trigger_ssr failed\n", Loading drivers/media/platform/msm/cvp/msm_cvp_core.c +1 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,7 @@ void *msm_cvp_open(int core_id, int session_type) mutex_lock(&core->lock); list_add_tail(&inst->list, &core->instances); core->ssr_sess_cnt++; mutex_unlock(&core->lock); __init_fence_queue(inst); Loading drivers/media/platform/msm/cvp/msm_cvp_internal.h +3 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ /* Adjust this value to admit non-realtime session */ #define CVP_RT_PRIO_THRESHOLD 0 #define CVP_MAX_SSR_RETRIES 5 struct msm_cvp_inst; enum cvp_core_state { Loading Loading @@ -284,6 +286,7 @@ struct msm_cvp_core { bool smmu_fault_handled; u32 last_fault_addr; bool trigger_ssr; u64 ssr_sess_cnt; unsigned long curr_freq; struct cvp_cycle_info dyn_clk; atomic64_t kernel_trans_id; Loading drivers/media/platform/msm/cvp/msm_cvp_platform.c +5 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,11 @@ static struct msm_cvp_common_data sm8350_common_data[] = { { .key = "qcom,debug-timeout", .value = 0, } }, { .key = "qcom,domain-attr-non-fatal-faults", .value = 1, }, }; Loading drivers/media/platform/msm/cvp/msm_cvp_res_parse.c +3 −2 Original line number Diff line number Diff line Loading @@ -925,8 +925,9 @@ int msm_cvp_smmu_fault_handler(struct iommu_domain *domain, if (core->smmu_fault_handled) { if (core->resources.non_fatal_pagefaults) { WARN_ONCE(1, "%s: non-fatal pagefault address: %lx\n", __func__, iova); pr_err_ratelimited( "msm_cvp: non-fatal pagefault address %lx\n", iova); *pfaddr = (*pfaddr == 0) ? iova : (*pfaddr); return 0; } Loading Loading
drivers/media/platform/msm/cvp/msm_cvp_common.c +6 −3 Original line number Diff line number Diff line Loading @@ -659,7 +659,9 @@ static void handle_sys_error(enum hal_command_response cmd, void *data) cur_state = core->state; core->state = CVP_CORE_UNINIT; dprintk(CVP_WARN, "SYS_ERROR received for core %pK\n", core); dprintk(CVP_WARN, "SYS_ERROR from core %pK ssr_sess_cnt %lld\n", core, core->ssr_sess_cnt); core->ssr_sess_cnt = 0; msm_cvp_noc_error_info(core); call_hfi_op(hdev, flush_debug_queue, hdev->hfi_device_data); list_for_each_entry(inst, &core->instances, list) { Loading Loading @@ -1367,7 +1369,7 @@ int msm_cvp_trigger_ssr(struct msm_cvp_core *core, void msm_cvp_ssr_handler(struct work_struct *work) { int rc; int rc, max_retries = CVP_MAX_SSR_RETRIES; struct msm_cvp_core *core; struct cvp_hfi_device *hdev; Loading Loading @@ -1427,6 +1429,7 @@ void msm_cvp_ssr_handler(struct work_struct *work) mutex_unlock(&core->lock); usleep_range(500, 1000); dprintk(CVP_WARN, "Retry ssr\n"); if (max_retries-- > 0) goto send_again; } dprintk(CVP_ERR, "%s: trigger_ssr failed\n", Loading
drivers/media/platform/msm/cvp/msm_cvp_core.c +1 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,7 @@ void *msm_cvp_open(int core_id, int session_type) mutex_lock(&core->lock); list_add_tail(&inst->list, &core->instances); core->ssr_sess_cnt++; mutex_unlock(&core->lock); __init_fence_queue(inst); Loading
drivers/media/platform/msm/cvp/msm_cvp_internal.h +3 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ /* Adjust this value to admit non-realtime session */ #define CVP_RT_PRIO_THRESHOLD 0 #define CVP_MAX_SSR_RETRIES 5 struct msm_cvp_inst; enum cvp_core_state { Loading Loading @@ -284,6 +286,7 @@ struct msm_cvp_core { bool smmu_fault_handled; u32 last_fault_addr; bool trigger_ssr; u64 ssr_sess_cnt; unsigned long curr_freq; struct cvp_cycle_info dyn_clk; atomic64_t kernel_trans_id; Loading
drivers/media/platform/msm/cvp/msm_cvp_platform.c +5 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,11 @@ static struct msm_cvp_common_data sm8350_common_data[] = { { .key = "qcom,debug-timeout", .value = 0, } }, { .key = "qcom,domain-attr-non-fatal-faults", .value = 1, }, }; Loading
drivers/media/platform/msm/cvp/msm_cvp_res_parse.c +3 −2 Original line number Diff line number Diff line Loading @@ -925,8 +925,9 @@ int msm_cvp_smmu_fault_handler(struct iommu_domain *domain, if (core->smmu_fault_handled) { if (core->resources.non_fatal_pagefaults) { WARN_ONCE(1, "%s: non-fatal pagefault address: %lx\n", __func__, iova); pr_err_ratelimited( "msm_cvp: non-fatal pagefault address %lx\n", iova); *pfaddr = (*pfaddr == 0) ? iova : (*pfaddr); return 0; } Loading