Commit 19d06582 authored by Jouni Högander's avatar Jouni Högander

drm/i915/psr: Unify pre/post hooks

pre/post hooks are doing things differently. Unify them.
Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230329150703.432072-2-jouni.hogander@intel.com
parent 8d8d062b
...@@ -1954,23 +1954,22 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state, ...@@ -1954,23 +1954,22 @@ static void _intel_psr_post_plane_update(const struct intel_atomic_state *state,
crtc_state->uapi.encoder_mask) { crtc_state->uapi.encoder_mask) {
struct intel_dp *intel_dp = enc_to_intel_dp(encoder); struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
struct intel_psr *psr = &intel_dp->psr; struct intel_psr *psr = &intel_dp->psr;
bool keep_disabled = false;
mutex_lock(&psr->lock); mutex_lock(&psr->lock);
if (psr->sink_not_reliable)
goto exit;
drm_WARN_ON(&dev_priv->drm, psr->enabled && !crtc_state->active_planes); drm_WARN_ON(&dev_priv->drm, psr->enabled && !crtc_state->active_planes);
/* Only enable if there is active planes */ keep_disabled |= psr->sink_not_reliable;
if (!psr->enabled && crtc_state->active_planes) keep_disabled |= !crtc_state->active_planes;
if (!psr->enabled && !keep_disabled)
intel_psr_enable_locked(intel_dp, crtc_state); intel_psr_enable_locked(intel_dp, crtc_state);
/* Force a PSR exit when enabling CRC to avoid CRC timeouts */ /* Force a PSR exit when enabling CRC to avoid CRC timeouts */
if (crtc_state->crc_enabled && psr->enabled) if (crtc_state->crc_enabled && psr->enabled)
psr_force_hw_tracking_exit(intel_dp); psr_force_hw_tracking_exit(intel_dp);
exit:
mutex_unlock(&psr->lock); mutex_unlock(&psr->lock);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment