From: Ankit Nautiyal Date: Mon, 11 May 2026 12:32:16 +0000 (+0530) Subject: drm/i915/dp: Use revision field of AS SDP data structure X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=563daf057863e06f35b90d072434c848ce280261;p=thirdparty%2Fkernel%2Flinux.git drm/i915/dp: Use revision field of AS SDP data structure Use the revision field of struct drm_dp_as_sdp instead of current hardcoding for the AS SDP revisions. Signed-off-by: Ankit Nautiyal Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/20260511123218.1589830-3-ankit.k.nautiyal@intel.com --- diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 9094ab4a9b6c1..1e10163bdc36d 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -4881,7 +4881,8 @@ static bool intel_compare_dp_as_sdp(const struct drm_dp_as_sdp *a, const struct drm_dp_as_sdp *b) { - return a->vtotal == b->vtotal && + return a->revision == b->revision && + a->vtotal == b->vtotal && a->target_rr == b->target_rr && a->duration_incr_ms == b->duration_incr_ms && a->duration_decr_ms == b->duration_decr_ms && diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index f01a6eed38395..b30b1e773eee1 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -3204,6 +3204,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp, as_sdp->sdp_type = DP_SDP_ADAPTIVE_SYNC; as_sdp->length = 0x9; as_sdp->duration_incr_ms = 0; + as_sdp->revision = 0x2; as_sdp->vtotal = intel_vrr_vmin_vtotal(crtc_state); if (crtc_state->cmrr.enable) { @@ -5180,7 +5181,7 @@ static ssize_t intel_dp_as_sdp_pack(const struct drm_dp_as_sdp *as_sdp, /* Prepare AS (Adaptive Sync) SDP Header */ sdp->sdp_header.HB0 = 0; sdp->sdp_header.HB1 = as_sdp->sdp_type; - sdp->sdp_header.HB2 = 0x02; + sdp->sdp_header.HB2 = as_sdp->revision; sdp->sdp_header.HB3 = as_sdp->length; /* Fill AS (Adaptive Sync) SDP Payload */ @@ -5367,13 +5368,11 @@ int intel_dp_as_sdp_unpack(struct drm_dp_as_sdp *as_sdp, if (sdp->sdp_header.HB1 != DP_SDP_ADAPTIVE_SYNC) return -EINVAL; - if (sdp->sdp_header.HB2 != 0x02) - return -EINVAL; - if ((sdp->sdp_header.HB3 & 0x3F) != 9) return -EINVAL; as_sdp->length = sdp->sdp_header.HB3 & DP_AS_SDP_LENGTH_MASK; + as_sdp->revision = sdp->sdp_header.HB2; as_sdp->mode = sdp->db[0] & DP_AS_SDP_OPERATION_MODE_MASK; as_sdp->vtotal = (sdp->db[2] << 8) | sdp->db[1]; as_sdp->target_rr = ((sdp->db[4] & 0x3) << 8) | sdp->db[3];