Skip to content

Commit 15f26bd

Browse files
committed
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]
1 parent 8f0c1c0 commit 15f26bd

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
@@ -1853,6 +1853,9 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state,
18531853

18541854
mutex_lock(&psr->lock);
18551855

1856+
if (psr->sink_not_reliable)
1857+
goto exit;
1858+
18561859
drm_WARN_ON(&dev_priv->drm, psr->enabled && !crtc_state->active_planes);
18571860

18581861
/* Only enable if there is active planes */
@@ -1863,6 +1866,7 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state,
18631866
if (crtc_state->crc_enabled && psr->enabled)
18641867
psr_force_hw_tracking_exit(intel_dp);
18651868

1869+
exit:
18661870
mutex_unlock(&psr->lock);
18671871
}
18681872
}

0 commit comments

Comments
 (0)