diff options
author | Jouni Högander <jouni.hogander@intel.com> | 2024-06-07 16:49:14 +0300 |
---|---|---|
committer | Jouni Högander <jouni.hogander@intel.com> | 2024-06-11 13:03:56 +0300 |
commit | 2e8938a1c56e60fcd6e52de254808615d0eccea4 (patch) | |
tree | bab8c0000e897870d79553e8b0f51eeb887de87d /drivers/gpu/drm/i915/display/intel_psr.c | |
parent | 51ee1f29a9aceb8a52037ba4759d44c70e966fe5 (diff) | |
download | linux-2e8938a1c56e60fcd6e52de254808615d0eccea4.tar.gz linux-2e8938a1c56e60fcd6e52de254808615d0eccea4.tar.bz2 linux-2e8938a1c56e60fcd6e52de254808615d0eccea4.zip |
drm/i915/psr: Move vblank length check to separate function
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
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_psr.c')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_psr.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index c3c576defc2b..8f2b8b4620bd 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -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; |