On Fri, Nov 21, 2025 at 01:16:55PM +0200, Jouni Högander wrote:
> As everything else related to PSR and Panel Replay capabilities are moved
> into intel_connector move sink_sync_latency as well.
> 
> Signed-off-by: Jouni Högander <[email protected]>

Reviewed-by: Imre Deak <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_display_types.h | 3 ++-
>  drivers/gpu/drm/i915/display/intel_psr.c           | 8 ++++----
>  2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 04d21333130f9..77e1948aef2ff 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -586,6 +586,8 @@ struct intel_connector {
>  
>                       u16 su_w_granularity;
>                       u16 su_y_granularity;
> +
> +                     u8 sync_latency;
>               } psr_caps;
>       } dp;
>  
> @@ -1740,7 +1742,6 @@ struct intel_psr {
>       bool psr2_sel_fetch_cff_enabled;
>       bool su_region_et_enabled;
>       bool req_psr2_sdp_prior_scanline;
> -     u8 sink_sync_latency;
>       ktime_t last_entry_attempt;
>       ktime_t last_exit;
>       bool sink_not_reliable;
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index e6268d692f89d..bbd1b0e8beecb 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -685,8 +685,7 @@ static void _psr_init_dpcd(struct intel_dp *intel_dp, 
> struct intel_connector *co
>       connector->dp.psr_caps.support = true;
>       intel_dp->psr.sink_support = true;
>  
> -     intel_dp->psr.sink_sync_latency =
> -             intel_dp_get_sink_sync_latency(intel_dp);
> +     connector->dp.psr_caps.sync_latency = 
> intel_dp_get_sink_sync_latency(intel_dp);
>  
>       if (DISPLAY_VER(display) >= 9 &&
>           connector->dp.psr_dpcd[0] >= DP_PSR2_WITH_Y_COORD_IS_SUPPORTED) {
> @@ -911,7 +910,7 @@ static u8 psr_compute_idle_frames(struct intel_dp 
> *intel_dp)
>        * off-by-one issue that HW has in some cases.
>        */
>       idle_frames = max(6, connector->panel.vbt.psr.idle_frames);
> -     idle_frames = max(idle_frames, intel_dp->psr.sink_sync_latency + 1);
> +     idle_frames = max(idle_frames, connector->dp.psr_caps.sync_latency + 1);
>  
>       if (drm_WARN_ON(display->drm, idle_frames > 0xf))
>               idle_frames = 0xf;
> @@ -1006,10 +1005,11 @@ static int psr2_block_count(struct intel_dp *intel_dp)
>  
>  static u8 frames_before_su_entry(struct intel_dp *intel_dp)
>  {
> +     struct intel_connector *connector = intel_dp->attached_connector;
>       u8 frames_before_su_entry;
>  
>       frames_before_su_entry = max_t(u8,
> -                                    intel_dp->psr.sink_sync_latency + 1,
> +                                    connector->dp.psr_caps.sync_latency + 1,
>                                      2);
>  
>       /* Entry setup frames must be at least 1 less than frames before SU 
> entry */
> -- 
> 2.43.0
> 

Reply via email to