Check drm_mode_vrefresh return value sanity before using it in intel_get_frame_time_us.
Signed-off-by: Jouni Högander <jouni.hogan...@intel.com> --- drivers/gpu/drm/i915/display/intel_psr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 5addde63168e..8cc2314fac6f 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1116,11 +1116,16 @@ transcoder_has_psr2(struct intel_display *display, enum transcoder cpu_transcode static u32 intel_get_frame_time_us(const struct intel_crtc_state *crtc_state) { + int vrefresh; + if (!crtc_state->hw.active) return 0; - return DIV_ROUND_UP(1000 * 1000, - drm_mode_vrefresh(&crtc_state->hw.adjusted_mode)); + vrefresh = drm_mode_vrefresh(&crtc_state->hw.adjusted_mode); + if (vrefresh <= 0) + return 0; + + return DIV_ROUND_UP(1000 * 1000, vrefresh); } static void psr2_program_idle_frames(struct intel_dp *intel_dp, -- 2.43.0