56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
|
From patchwork Thu Sep 27 20:57:31 2018
|
||
|
Content-Type: text/plain; charset="utf-8"
|
||
|
MIME-Version: 1.0
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
Subject: [CI, 2/6] drm/i915/dp: Restrict link retrain workaround to external
|
||
|
monitors
|
||
|
From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
|
||
|
X-Patchwork-Id: 253514
|
||
|
Message-Id: <20180927205735.16651-2-dhinakaran.pandiyan@intel.com>
|
||
|
To: intel-gfx@lists.freedesktop.org
|
||
|
Date: Thu, 27 Sep 2018 13:57:31 -0700
|
||
|
|
||
|
Commit '3cf71bc9904d ("drm/i915: Re-apply "Perform link quality check,
|
||
|
unconditionally during long pulse"")' applies a work around for sinks
|
||
|
that don't signal link loss. The work around does not need to have to be
|
||
|
that broad as the issue was seen with only one particular monitor; limit
|
||
|
this only for external displays as eDP features like PSR turn off the link
|
||
|
and the driver ends up retraining the link seeeing that link is not
|
||
|
synchronized.
|
||
|
|
||
|
Cc: Lyude Paul <lyude@redhat.com>
|
||
|
Cc: Jan-Marek Glogowski <glogow@fbihome.de>
|
||
|
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||
|
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
||
|
References: 3cf71bc9904d ("drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"")
|
||
|
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
|
||
|
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||
|
---
|
||
|
drivers/gpu/drm/i915/intel_dp.c | 13 +++++++------
|
||
|
1 file changed, 7 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
||
|
index 207b3ea2ed1a..4e0870f3a4a5 100644
|
||
|
--- a/drivers/gpu/drm/i915/intel_dp.c
|
||
|
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
||
|
@@ -5072,12 +5072,13 @@ intel_dp_long_pulse(struct intel_connector *connector,
|
||
|
*/
|
||
|
status = connector_status_disconnected;
|
||
|
goto out;
|
||
|
- } else {
|
||
|
- /*
|
||
|
- * Some external monitors do not signal loss of link
|
||
|
- * synchronization with an IRQ_HPD, so force a link status
|
||
|
- * check.
|
||
|
- */
|
||
|
+ }
|
||
|
+
|
||
|
+ /*
|
||
|
+ * Some external monitors do not signal loss of link synchronization
|
||
|
+ * with an IRQ_HPD, so force a link status check.
|
||
|
+ */
|
||
|
+ if (!intel_dp_is_edp(intel_dp)) {
|
||
|
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
|
||
|
|
||
|
intel_dp_retrain_link(encoder, ctx);
|