]> www.infradead.org Git - users/willy/xarray.git/commitdiff
drm/i915/psr: Take into account SU SDP scanline indication in vblank check
authorJouni Högander <jouni.hogander@intel.com>
Fri, 7 Jun 2024 13:49:15 +0000 (16:49 +0300)
committerJouni Högander <jouni.hogander@intel.com>
Tue, 11 Jun 2024 10:04:24 +0000 (13:04 +0300)
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>
Link: https://patchwork.freedesktop.org/patch/msgid/20240607134917.1327574-12-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_psr.c

index 8f2b8b4620bd5173d03606e41d14bed31e35c67d..7ee03bf924c4b8ee1ab1421cb61b426d5478e5ce 100644 (file)
@@ -1250,6 +1250,9 @@ static bool wake_lines_fit_into_vblank(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;