Skip to content

Commit 9498f2e

Browse files
hoganderjlahtine-intel
authored andcommitted
drm/i915/psr: Do not wait for PSR being idle on on Panel Replay
We do not have ALPM on DP Panel Replay. Due to this SRD_STATUS[SRD State] doesn't change from SRDENT_ON after Panel Replay is enabled until it gets disabled. On eDP Panel Replay DEEP_SLEEP is not reached. _psr2_ready_for_pipe_update_locked is waiting DEEP_SLEEP bit getting reset. Take these into account in Panel Replay code by not waiting PSR getting idle after enabling VBI. Fixes: 29fb595 ("drm/i915/psr: Panel replay uses SRD_STATUS to track it's status") Cc: Animesh Manna <[email protected]> Signed-off-by: Jouni Högander <[email protected]> Reviewed-by: Animesh Manna <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit a2d98fe) Signed-off-by: Joonas Lahtinen <[email protected]>
1 parent bf05aea commit 9498f2e

File tree

1 file changed

+2
-11
lines changed

1 file changed

+2
-11
lines changed

drivers/gpu/drm/i915/display/intel_psr.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2784,13 +2784,6 @@ static int _psr1_ready_for_pipe_update_locked(struct intel_dp *intel_dp)
27842784
EDP_PSR_STATUS_STATE_MASK, 50);
27852785
}
27862786

2787-
static int _panel_replay_ready_for_pipe_update_locked(struct intel_dp *intel_dp)
2788-
{
2789-
return intel_dp_is_edp(intel_dp) ?
2790-
_psr2_ready_for_pipe_update_locked(intel_dp) :
2791-
_psr1_ready_for_pipe_update_locked(intel_dp);
2792-
}
2793-
27942787
/**
27952788
* intel_psr_wait_for_idle_locked - wait for PSR be ready for a pipe update
27962789
* @new_crtc_state: new CRTC state
@@ -2813,12 +2806,10 @@ void intel_psr_wait_for_idle_locked(const struct intel_crtc_state *new_crtc_stat
28132806

28142807
lockdep_assert_held(&intel_dp->psr.lock);
28152808

2816-
if (!intel_dp->psr.enabled)
2809+
if (!intel_dp->psr.enabled || intel_dp->psr.panel_replay_enabled)
28172810
continue;
28182811

2819-
if (intel_dp->psr.panel_replay_enabled)
2820-
ret = _panel_replay_ready_for_pipe_update_locked(intel_dp);
2821-
else if (intel_dp->psr.sel_update_enabled)
2812+
if (intel_dp->psr.sel_update_enabled)
28222813
ret = _psr2_ready_for_pipe_update_locked(intel_dp);
28232814
else
28242815
ret = _psr1_ready_for_pipe_update_locked(intel_dp);

0 commit comments

Comments
 (0)