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

Reply via email to