Re: [PATCH 08/19] drm/i915/dp: Add a helper to decide if AS SDP can be used

Ville Syrjälä
2026-03-31T12:00:48Z

On Tue, Mar 31, 2026 at 05:12:14PM +0530, Nautiyal, Ankit K wrote:
>
> On 3/30/2026 11:51 PM, Ville Syrjälä wrote:
> > On Mon, Mar 30, 2026 at 09:36:45AM +0530, Ankit Nautiyal wrote:
> >> Add a helper that determines whether AS SDP can be used for the
> >> current DP configuration. For now this is true only when the sink
> >> supports AS SDP and VRR is enabled, but more conditions may be added
> >> later.
> >>
> >> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/display/intel_dp.c | 11 ++++++++++-
> >> 1 file changed, 10 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> >> index 499850c2abcf..7ca3f9d583db 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> >> @@ -3124,6 +3124,15 @@ static void intel_dp_compute_vsc_colorimetry(const struct intel_crtc_state *crtc
> >> vsc->content_type = DP_CONTENT_TYPE_NOT_DEFINED;
> >> }
> >>
> >> +static bool intel_dp_can_use_as_sdp(struct intel_dp *intel_dp,
> >> + struct intel_crtc_state *crtc_state)
> >> +{
> >> + if (!intel_dp->as_sdp_supported)
> >> + return false;
> >> +
> > Could have a FIXME here about fastset being borked with this. Didn't
> > read far enough in the series yet to see if you did anything about that.
>
> Hmm... let me check if I understand your concern correctly.
>
> When VRR state changes through the fastset path,
> intel_dp_as_sdp_compute_config_late() will compute different AS SDP fields.
>
> We do write the new values to the SDP DIP registers during update_pipe,
> but since AS SDP comparison is skipped during fastset,

Oh, I thought we didn't have that. If it's there then I guess it's
fine-ish. Although we don't do the infoframe/SDP updates in the
truly proper atomic fashion, nor do we handle the new cdclk->tc clock
crossing thing correctly. So I suspect we might end up sending
a corrupted packet if the update happens to straddle the transmission
line.

> we have no way to verify through state readback that the hardware
> actually latched the new values correctly.
>
> Is that what you had in mind?
>
> I'll add a FIXME about this.
>
> Thanks,
>
> Ankit
>
>
> >
> > Either way
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> >> + return crtc_state->vrr.enable;
> >> +}
> >> +
> >> static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
> >> struct intel_crtc_state *crtc_state)
> >> {
> >> @@ -3131,7 +3140,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
> >> const struct drm_display_mode *adjusted_mode =
> >> &crtc_state->hw.adjusted_mode;
> >>
> >> - if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
> >> + if (!intel_dp_can_use_as_sdp(intel_dp, crtc_state))
> >> return;
> >>
> >> crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
> >> --
> >> 2.45.2

--
Ville Syrjälä
Intel