]> www.infradead.org Git - users/willy/xarray.git/commitdiff
drm/i915/psr: Move vblank length check to separate function
authorJouni Högander <jouni.hogander@intel.com>
Fri, 7 Jun 2024 13:49:14 +0000 (16:49 +0300)
committerJouni Högander <jouni.hogander@intel.com>
Tue, 11 Jun 2024 10:03:56 +0000 (13:03 +0300)
We are about to add more complexity to vblank length check. It makes sense
to move it to separate function for sake of clarity.

v2: change name to wake_lines_fit_into_vblank

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-11-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_psr.c

index c3c576defc2bdf1918a61c47f965e24625e6ff28..8f2b8b4620bd5173d03606e41d14bed31e35c67d 100644 (file)
@@ -1243,6 +1243,20 @@ static int intel_psr_entry_setup_frames(struct intel_dp *intel_dp,
        return entry_setup_frames;
 }
 
+static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
+                                      const struct intel_crtc_state *crtc_state)
+{
+       int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
+               crtc_state->hw.adjusted_mode.crtc_vblank_start;
+       int wake_lines = psr2_block_count_lines(intel_dp);
+
+       /* Vblank >= PSR2_CTL Block Count Number maximum line count */
+       if (vblank < wake_lines)
+               return false;
+
+       return true;
+}
+
 static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
                                    struct intel_crtc_state *crtc_state)
 {
@@ -1333,9 +1347,7 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
        }
 
        /* Vblank >= PSR2_CTL Block Count Number maximum line count */
-       if (crtc_state->hw.adjusted_mode.crtc_vblank_end -
-           crtc_state->hw.adjusted_mode.crtc_vblank_start <
-           psr2_block_count_lines(intel_dp)) {
+       if (!wake_lines_fit_into_vblank(intel_dp, crtc_state)) {
                drm_dbg_kms(&dev_priv->drm,
                            "PSR2 not enabled, too short vblank time\n");
                return false;