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