f496616
From 1aab956c7b8872fb6976328316bfad62c6e67cf8 Mon Sep 17 00:00:00 2001
f496616
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
f496616
Date: Fri, 21 Oct 2016 16:44:38 +0300
f496616
Subject: [PATCH] drm/i915: Refresh that status of MST capable connectors in
f496616
 ->detect()
f496616
MIME-Version: 1.0
f496616
Content-Type: text/plain; charset=UTF-8
f496616
Content-Transfer-Encoding: 8bit
f496616
f496616
Once we've determined that the sink is MST capable we never end up
f496616
running through the full detect cycle again, despite getting HPDs.
f496616
Fix tht by ripping out the incorrect piece of code responsible.
f496616
f496616
This got broken when I moved the long HPD handling to the ->detect()
f496616
hook, but failed to remove the leftover code.
f496616
f496616
Cc: Ander Conselvan de Oliveira <conselvan2@gmail.com>
f496616
Cc: drm-intel-fixes@lists.freedesktop.org
f496616
Cc: Rui Tiago Matos <tiagomatos@gmail.com>
f496616
Tested-by: Rui Tiago Matos <tiagomatos@gmail.com>
f496616
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98323
f496616
Cc: Kirill A. Shutemov <kirill@shutemov.name>
f496616
Tested-by: Kirill A. Shutemov <kirill@shutemov.name>
f496616
References: https://bugs.freedesktop.org/show_bug.cgi?id=98306
f496616
Fixes: 27d4efc5591a ("drm/i915: Move long hpd handling into the hotplug work")
f496616
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
f496616
Link: http://patchwork.freedesktop.org/patch/msgid/1477057478-29328-1-git-send-email-ville.syrjala@linux.intel.com
f496616
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
f496616
---
f496616
 drivers/gpu/drm/i915/intel_dp.c | 10 ----------
f496616
 1 file changed, 10 deletions(-)
f496616
f496616
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
f496616
index f30db8f..80db8a3 100644
f496616
--- a/drivers/gpu/drm/i915/intel_dp.c
f496616
+++ b/drivers/gpu/drm/i915/intel_dp.c
f496616
@@ -4492,21 +4492,11 @@ static enum drm_connector_status
f496616
 intel_dp_detect(struct drm_connector *connector, bool force)
f496616
 {
f496616
 	struct intel_dp *intel_dp = intel_attached_dp(connector);
f496616
-	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
f496616
-	struct intel_encoder *intel_encoder = &intel_dig_port->base;
f496616
 	enum drm_connector_status status = connector->status;
f496616
f496616
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
f496616
 		      connector->base.id, connector->name);
f496616
f496616
-	if (intel_dp->is_mst) {
f496616
-		/* MST devices are disconnected from a monitor POV */
f496616
-		intel_dp_unset_edid(intel_dp);
f496616
-		if (intel_encoder->type != INTEL_OUTPUT_EDP)
f496616
-			intel_encoder->type = INTEL_OUTPUT_DP;
f496616
-		return connector_status_disconnected;
f496616
-	}
f496616
-
f496616
 	/* If full detect is not performed yet, do a full detect */
f496616
 	if (!intel_dp->detect_done)
f496616
 		status = intel_dp_long_pulse(intel_dp->attached_connector);
f496616
-- 
f496616
2.7.4
f496616