diff mbox series

[v6,12/26] drm/i915/psr: Take into account SU SDP scanline indication in vblank check

Message ID 20240605102553.187309-13-jouni.hogander@intel.com (mailing list archive)
State New
Headers show
Series Panel Replay eDP support | expand

Commit Message

Jouni Högander June 5, 2024, 10:25 a.m. UTC
SU SDP scanline indication should be taken into account when checking
vblank length. In Bspec we have:

PSR2_CTL[ SU SDP scanline indication ] = 0: (TRANS_VBLANK Vertical Blank End- TRANS_VBLANK Vertical Blank Start) > PSR2_CTL Block Count Number value in lines
PSR2_CTL[ SU SDP scanline indication ] = 1: (TRANS_VBLANK Vertical Blank End- TRANS_VBLANK Vertical Blank Start- 1) > PSR2_CTL Block Count Number value in lines

Bspec: 49274

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Manna, Animesh June 6, 2024, 3:02 p.m. UTC | #1
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Wednesday, June 5, 2024 3:56 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Manna, Animesh <animesh.manna@intel.com>; Kahola, Mika
> <mika.kahola@intel.com>; Hogander, Jouni <jouni.hogander@intel.com>
> Subject: [PATCH v6 12/26] drm/i915/psr: Take into account SU SDP scanline
> indication in vblank check
> 
> SU SDP scanline indication should be taken into account when checking
> vblank length. In Bspec we have:
> 
> PSR2_CTL[ SU SDP scanline indication ] = 0: (TRANS_VBLANK Vertical Blank
> End- TRANS_VBLANK Vertical Blank Start) > PSR2_CTL Block Count Number
> value in lines
> PSR2_CTL[ SU SDP scanline indication ] = 1: (TRANS_VBLANK Vertical Blank
> End- TRANS_VBLANK Vertical Blank Start- 1) > PSR2_CTL Block Count Number
> value in lines
> 
> Bspec: 49274
> 
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>

Reviewed-by: Animesh Manna <animesh.manna@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 23c3fed1f983..471b60032304 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1250,6 +1250,9 @@ static bool vblank_length_valid(struct intel_dp
> *intel_dp,
>  		crtc_state->hw.adjusted_mode.crtc_vblank_start;
>  	int wake_lines = psr2_block_count_lines(intel_dp);
> 
> +	if (crtc_state->req_psr2_sdp_prior_scanline)
> +		vblank -= 1;
> +
>  	/* Vblank >= PSR2_CTL Block Count Number maximum line count */
>  	if (vblank < wake_lines)
>  		return false;
> --
> 2.34.1
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 23c3fed1f983..471b60032304 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1250,6 +1250,9 @@  static bool vblank_length_valid(struct intel_dp *intel_dp,
 		crtc_state->hw.adjusted_mode.crtc_vblank_start;
 	int wake_lines = psr2_block_count_lines(intel_dp);
 
+	if (crtc_state->req_psr2_sdp_prior_scanline)
+		vblank -= 1;
+
 	/* Vblank >= PSR2_CTL Block Count Number maximum line count */
 	if (vblank < wake_lines)
 		return false;