Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +8 −3 Original line number Diff line number Diff line Loading @@ -2897,6 +2897,8 @@ static int msm_comm_init_core(struct msm_vidc_inst *inst) } core->state = VIDC_CORE_INIT; core->smmu_fault_handled = false; core->trigger_ssr = false; core_already_inited: change_inst_state(inst, MSM_VIDC_CORE_INIT); mutex_unlock(&core->lock); Loading Loading @@ -5209,11 +5211,14 @@ int msm_vidc_trigger_ssr(struct msm_vidc_core *core, * 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); core->trigger_ssr = true; rc = call_hfi_op(hdev, core_trigger_ssr, hdev->hfi_device_data, type); if (rc) { dprintk(VIDC_ERR, "%s: trigger_ssr failed\n", __func__); core->trigger_ssr = false; } } return rc; Loading drivers/media/platform/msm/vidc/msm_vidc_debug.c +0 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ bool msm_vidc_fw_coverage = !true; bool msm_vidc_sys_idle_indicator = !true; bool msm_vidc_thermal_mitigation_disabled = !true; bool msm_vidc_clock_scaling = true; bool msm_vidc_debug_timeout = !true; bool msm_vidc_syscache_disable = !true; #define MAX_DBG_BUF_SIZE 4096 Loading Loading @@ -208,8 +207,6 @@ struct dentry *msm_vidc_debugfs_init_drv(void) &msm_vidc_thermal_mitigation_disabled) && __debugfs_create(bool, "clock_scaling", &msm_vidc_clock_scaling) && __debugfs_create(bool, "debug_timeout", &msm_vidc_debug_timeout) && __debugfs_create(bool, "disable_video_syscache", &msm_vidc_syscache_disable); Loading drivers/media/platform/msm/vidc/msm_vidc_debug.h +12 −2 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ extern bool msm_vidc_fw_coverage; extern bool msm_vidc_sys_idle_indicator; extern bool msm_vidc_thermal_mitigation_disabled; extern bool msm_vidc_clock_scaling; extern bool msm_vidc_debug_timeout; extern bool msm_vidc_syscache_disable; #define VIDC_MSG_PRIO2STRING(__level) ({ \ Loading Loading @@ -184,7 +183,18 @@ static inline void msm_vidc_handle_hw_error(struct msm_vidc_core *core) { bool enable_fatal; enable_fatal = msm_vidc_debug_timeout; enable_fatal = core->resources.debug_timeout; /* * 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. */ if (core->trigger_ssr) { core->trigger_ssr = false; enable_fatal = false; } /* Video driver can decide FATAL handling of HW errors * based on multiple factors. This condition check will Loading drivers/media/platform/msm/vidc/msm_vidc_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -324,6 +324,7 @@ struct msm_vidc_core { struct msm_vidc_capability *capabilities; struct delayed_work fw_unload_work; bool smmu_fault_handled; bool trigger_ssr; unsigned long min_freq; unsigned long curr_freq; struct vidc_bus_vote_data *vote_data; Loading drivers/media/platform/msm/vidc/msm_vidc_platform.c +4 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,10 @@ static struct msm_vidc_common_data sdm845_common_data[] = { .key = "qcom,hw-resp-timeout", .value = 250, }, { .key = "qcom,debug-timeout", .value = 0, }, }; Loading Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +8 −3 Original line number Diff line number Diff line Loading @@ -2897,6 +2897,8 @@ static int msm_comm_init_core(struct msm_vidc_inst *inst) } core->state = VIDC_CORE_INIT; core->smmu_fault_handled = false; core->trigger_ssr = false; core_already_inited: change_inst_state(inst, MSM_VIDC_CORE_INIT); mutex_unlock(&core->lock); Loading Loading @@ -5209,11 +5211,14 @@ int msm_vidc_trigger_ssr(struct msm_vidc_core *core, * 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); core->trigger_ssr = true; rc = call_hfi_op(hdev, core_trigger_ssr, hdev->hfi_device_data, type); if (rc) { dprintk(VIDC_ERR, "%s: trigger_ssr failed\n", __func__); core->trigger_ssr = false; } } return rc; Loading
drivers/media/platform/msm/vidc/msm_vidc_debug.c +0 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ bool msm_vidc_fw_coverage = !true; bool msm_vidc_sys_idle_indicator = !true; bool msm_vidc_thermal_mitigation_disabled = !true; bool msm_vidc_clock_scaling = true; bool msm_vidc_debug_timeout = !true; bool msm_vidc_syscache_disable = !true; #define MAX_DBG_BUF_SIZE 4096 Loading Loading @@ -208,8 +207,6 @@ struct dentry *msm_vidc_debugfs_init_drv(void) &msm_vidc_thermal_mitigation_disabled) && __debugfs_create(bool, "clock_scaling", &msm_vidc_clock_scaling) && __debugfs_create(bool, "debug_timeout", &msm_vidc_debug_timeout) && __debugfs_create(bool, "disable_video_syscache", &msm_vidc_syscache_disable); Loading
drivers/media/platform/msm/vidc/msm_vidc_debug.h +12 −2 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ extern bool msm_vidc_fw_coverage; extern bool msm_vidc_sys_idle_indicator; extern bool msm_vidc_thermal_mitigation_disabled; extern bool msm_vidc_clock_scaling; extern bool msm_vidc_debug_timeout; extern bool msm_vidc_syscache_disable; #define VIDC_MSG_PRIO2STRING(__level) ({ \ Loading Loading @@ -184,7 +183,18 @@ static inline void msm_vidc_handle_hw_error(struct msm_vidc_core *core) { bool enable_fatal; enable_fatal = msm_vidc_debug_timeout; enable_fatal = core->resources.debug_timeout; /* * 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. */ if (core->trigger_ssr) { core->trigger_ssr = false; enable_fatal = false; } /* Video driver can decide FATAL handling of HW errors * based on multiple factors. This condition check will Loading
drivers/media/platform/msm/vidc/msm_vidc_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -324,6 +324,7 @@ struct msm_vidc_core { struct msm_vidc_capability *capabilities; struct delayed_work fw_unload_work; bool smmu_fault_handled; bool trigger_ssr; unsigned long min_freq; unsigned long curr_freq; struct vidc_bus_vote_data *vote_data; Loading
drivers/media/platform/msm/vidc/msm_vidc_platform.c +4 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,10 @@ static struct msm_vidc_common_data sdm845_common_data[] = { .key = "qcom,hw-resp-timeout", .value = 250, }, { .key = "qcom,debug-timeout", .value = 0, }, }; Loading