From 77ce0fb5f7453cf795b8ec87064a6f0f712d537a Mon Sep 17 00:00:00 2001 From: Mitul Golani Date: Thu, 30 Jul 2026 16:29:11 +0530 Subject: [PATCH] drm/i915/vrr: Update AS_SDP target_rr_divider based on CMRR config request Compute AS_SDP target_rr_divider based on actual CMRR request requirement. Signed-off-by: Mitul Golani Reviewed-by: Chaitanya Kumar Borah Signed-off-by: Suraj Kandpal Link: https://patch.msgid.link/20260730105919.3913412-5-mitulkumar.ajitkumar.golani@intel.com --- drivers/gpu/drm/i915/display/intel_dp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 0b84f6fb257d..a6edfd4c86b2 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -3086,6 +3086,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp, struct drm_dp_as_sdp *as_sdp = &crtc_state->infoframes.as_sdp; const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); /* * #FIXME: SDP/infoframe updates aren’t truly atomic, and with the new @@ -3106,7 +3107,11 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp, if (crtc_state->cmrr.enable) { as_sdp->mode = DP_AS_SDP_FAVT_TRR_REACHED; as_sdp->target_rr = drm_mode_vrefresh(adjusted_mode); - as_sdp->target_rr_divider = true; + + if (crtc->force_cmrr.denominator == 1001) + as_sdp->target_rr_divider = true; + else + as_sdp->target_rr_divider = false; } else if (crtc_state->vrr.enable) { as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL; } else {