]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/i915/dp: fix the Adaptive sync Operation mode for SDP
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 30 Jan 2025 05:16:06 +0000 (10:46 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Feb 2025 09:05:00 +0000 (10:05 +0100)
[ Upstream commit 4466302262b38f5e6c65325035b4036a42efc934 ]

Currently we support Adaptive sync operation mode with dynamic frame
rate, but instead the operation mode with fixed rate is set.
This was initially set correctly in the earlier version of changes but
later got changed, while defining a macro for the same.

Fixes: a5bd5991cb8a ("drm/i915/display: Compute AS SDP parameters")
Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250130051609.1796524-4-mitulkumar.ajitkumar.golani@intel.com
(cherry picked from commit c5806862543ff6c2ad242409fcdf0667eac26dae)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/i915/display/intel_dp.c

index 90fa73575feb1305225cb18fbd8ecd35d4b2fa33..7befd260f594931205bf53311517f5bb4b0addfb 100644 (file)
@@ -2738,7 +2738,6 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
 
        crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
 
-       /* Currently only DP_AS_SDP_AVT_FIXED_VTOTAL mode supported */
        as_sdp->sdp_type = DP_SDP_ADAPTIVE_SYNC;
        as_sdp->length = 0x9;
        as_sdp->duration_incr_ms = 0;
@@ -2750,7 +2749,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
                as_sdp->target_rr = drm_mode_vrefresh(adjusted_mode);
                as_sdp->target_rr_divider = true;
        } else {
-               as_sdp->mode = DP_AS_SDP_AVT_FIXED_VTOTAL;
+               as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL;
                as_sdp->vtotal = adjusted_mode->vtotal;
                as_sdp->target_rr = 0;
        }