Skip to content

Commit 278da06

Browse files
zehortigozajlahtine-intel
authored andcommitted
drm/i915/display: Do not re-enable PSR after it was marked as not reliable
If a error happens and sink_not_reliable is set, PSR should be disabled for good but that is not happening. It would be disabled by the function handling the PSR error but then on the next fastset it would be enabled again in _intel_psr_post_plane_update(). It would only be disabled for good in the next modeset where has_psr will be set false. v2: - release psr lock before continue Fixes: 9ce5884 ("drm/i915/display: Only keep PSR enabled if there is active planes") Reported-by: Khaled Almahallawy <[email protected]> Reported-by: Charlton Lin <[email protected]> Cc: Jouni Högander <[email protected]> Signed-off-by: José Roberto de Souza <[email protected]> Reviewed-by: Jouni Högander <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit 15f26bd) Signed-off-by: Joonas Lahtinen <[email protected]>
1 parent 3a84fd1 commit 278da06

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,6 +1837,9 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state,
18371837

18381838
mutex_lock(&psr->lock);
18391839

1840+
if (psr->sink_not_reliable)
1841+
goto exit;
1842+
18401843
drm_WARN_ON(&dev_priv->drm, psr->enabled && !crtc_state->active_planes);
18411844

18421845
/* Only enable if there is active planes */
@@ -1847,6 +1850,7 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state,
18471850
if (crtc_state->crc_enabled && psr->enabled)
18481851
psr_force_hw_tracking_exit(intel_dp);
18491852

1853+
exit:
18501854
mutex_unlock(&psr->lock);
18511855
}
18521856
}

0 commit comments

Comments
 (0)