drm/i915: Check PSR errors instead of retrain while PSR is enabled
authorJosé Roberto de Souza <jose.souza@intel.com>
Wed, 21 Nov 2018 22:54:37 +0000 (14:54 -0800)
committerJosé Roberto de Souza <jose.souza@intel.com>
Thu, 22 Nov 2018 21:51:16 +0000 (13:51 -0800)
commit2f8e7ea974c164c6d2f7761b7406a28fbf0f20c9
tree7494b74b1800395a89301554a45450665c359ff7
parent2bb06265cfd4e4d00ab9612e6a2b9a788f819afd
drm/i915: Check PSR errors instead of retrain while PSR is enabled

When a PSR error happens sink sets the PSR error register and also
set the link status to a error status.
So in the short pulse handling it was returning earlier and doing a
full detection and attempting to retrain but it fails as PSR HW is
in change of the main-link.

Just call intel_psr_short_pulse() before
intel_dp_needs_link_retrain() is not the right fix as
intel_dp_needs_link_retrain() would return true and trigger a full
detection while PSR HW is still in change of main-link.

Check for PSR active is also not safe as it could be inactive due a
frontbuffer invalidate and still doing the PSR exit sequence.

v3: added comment in intel_dp_needs_link_retrain()

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181121225441.18785-2-jose.souza@intel.com
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_psr.c