drm/i915: Disable PSR when a PSR aux error happen
authorJosé Roberto de Souza <jose.souza@intel.com>
Wed, 21 Nov 2018 22:54:39 +0000 (14:54 -0800)
committerJosé Roberto de Souza <jose.souza@intel.com>
Thu, 22 Nov 2018 21:51:18 +0000 (13:51 -0800)
commit183b8e676db2cbf80c0769e472d045bb602e4ea5
tree77b2a0a9904bee7ddcd8414c4f85bf87bf1881a0
parent50a12d8fc9a0d687d9ef4ac9cc16d177a2529937
drm/i915: Disable PSR when a PSR aux error happen

While PSR is active hardware will do aux transactions by it self to
wakeup sink to receive a new frame when necessary. If that
transaction is not acked by sink, hardware will trigger this
interruption.

So let's disable PSR as it is a hint that there is problem with this
sink.

The removed FIXME was asking to manually train the link but we don't
need to do that as by spec sink should do a short pulse when it is
out of sync with source, we just need to make sure it is awaken and
the SDP header with PSR inactive set it will trigger the short pulse
with a error set in the link status.

v3: added workarround to fix scheduled work starvation cause by
to frequent PSR error interruption

v4: only setting irq_aux_error as we don't care in clear it and
not using dev_priv->irq_lock as consequence.

v5: rebased: using edp_psr_shift()

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-4-jose.souza@intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_psr.c