On Tue, May 26, 2026 at 12:13:09PM +0530, Ankit Nautiyal wrote: > Currently AS SDP is only configured when VRR is enabled. > With optimized guardband, we also need to account for wakeup time and other > relevant details that depend on the AS SDP position whenever AS SDP is > enabled. If a feature enabling AS SDP gets turned on later (after modeset), > the guardband might not be sufficient and may need to increase, triggering > a full modeset. > > Additionally, for Panel Replay with Aux-less ALPM where the sink does > not support asynchronous video timing in PR active, the source must > keep transmitting Adaptive-Sync SDPs while PR is active. > > So, always send AS SDP whenever there is a possibility to use it for VRR > OR for Panel Replay for synchronization. > > v2: Check if AS SDP can be used for synchronization for VRR or PR. (Ville) > v3: Use intel_psr_needs_alpm_aux_less() instead of > intel_alpm_is_alpm_aux_less() to avoid including the LOBF case. (Ville) > Modify the commit message and subject. > > Signed-off-by: Ankit Nautiyal <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index a3aa0dadf0e1..87d7857fbafa 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -3181,7 +3181,11 @@ static bool intel_dp_needs_as_sdp(struct intel_dp > *intel_dp, > if (drm_dp_is_branch(intel_dp->dpcd)) > return false; > > - return crtc_state->vrr.enable; > + if (intel_psr_needs_alpm_aux_less(intel_dp, crtc_state) &&
That depends on stuff computed by intel_psr_compute_config() but currently that is called after intel_dp_compute_as_sdp() (which is where intel_dp_needs_as_sdp() gets called). I can't immediately see any other dependencies between those two functions so looks like we could just reorder the calls. > + !intel_psr_pr_async_video_timing_supported(intel_dp)) > + return true; > + > + return intel_vrr_possible(crtc_state); > } > > static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp, > -- > 2.45.2 -- Ville Syrjälä Intel
