On Wed, Mar 11, 2026 at 05:06:02PM +0530, Ankit Nautiyal wrote:
> Use the revision field of struct drm_dp_as_sdp instead of current
> hardcoding for the AS SDP revisions.
> 
> Signed-off-by: Ankit Nautiyal <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 3 ++-
>  drivers/gpu/drm/i915/display/intel_dp.c      | 7 +++----
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index b18ce0c36a64..88e1b503d301 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4900,7 +4900,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 &&

Someone should add the check for the type and length as well
(and other relevant stuff in the header if any). But that
can be a separate patch.

Reviewed-by: Ville Syrjälä <[email protected]>

> +             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 17af68a1a9e5..0d2403d48528 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -3154,6 +3154,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) {
> @@ -5117,7 +5118,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 */
> @@ -5304,13 +5305,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];
> -- 
> 2.45.2

-- 
Ville Syrjälä
Intel

Reply via email to