aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-10-21 09:44:38 -0400
committerJani Nikula <jani.nikula@intel.com>2016-11-11 03:19:45 -0500
commitfc22b787890f9f9067fd130feec42297a4ee62ba (patch)
treef7cf380defe51a8ba508b1fc70265ed39116005b
parent9f1a7ab260300c670608a9db861187069f8b179a (diff)
drm/i915: Refresh that status of MST capable connectors in ->detect()
Once we've determined that the sink is MST capable we never end up running through the full detect cycle again, despite getting HPDs. Fix tht by ripping out the incorrect piece of code responsible. This got broken when I moved the long HPD handling to the ->detect() hook, but failed to remove the leftover code. Cc: Ander Conselvan de Oliveira <conselvan2@gmail.com> Cc: drm-intel-fixes@lists.freedesktop.org Cc: Rui Tiago Matos <tiagomatos@gmail.com> Tested-by: Rui Tiago Matos <tiagomatos@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98323 Cc: Kirill A. Shutemov <kirill@shutemov.name> Tested-by: Kirill A. Shutemov <kirill@shutemov.name> References: https://bugs.freedesktop.org/show_bug.cgi?id=98306 Fixes: 1015811609c0 ("drm/i915: Move long hpd handling into the hotplug work") Cc: stable@vger.kernel.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1477057478-29328-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 1aab956c7b8872fb6976328316bfad62c6e67cf8) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c10
1 files changed, 0 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 3581b5a7f716..bf344d08356a 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4463,21 +4463,11 @@ static enum drm_connector_status
4463intel_dp_detect(struct drm_connector *connector, bool force) 4463intel_dp_detect(struct drm_connector *connector, bool force)
4464{ 4464{
4465 struct intel_dp *intel_dp = intel_attached_dp(connector); 4465 struct intel_dp *intel_dp = intel_attached_dp(connector);
4466 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
4467 struct intel_encoder *intel_encoder = &intel_dig_port->base;
4468 enum drm_connector_status status = connector->status; 4466 enum drm_connector_status status = connector->status;
4469 4467
4470 DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", 4468 DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
4471 connector->base.id, connector->name); 4469 connector->base.id, connector->name);
4472 4470
4473 if (intel_dp->is_mst) {
4474 /* MST devices are disconnected from a monitor POV */
4475 intel_dp_unset_edid(intel_dp);
4476 if (intel_encoder->type != INTEL_OUTPUT_EDP)
4477 intel_encoder->type = INTEL_OUTPUT_DP;
4478 return connector_status_disconnected;
4479 }
4480
4481 /* If full detect is not performed yet, do a full detect */ 4471 /* If full detect is not performed yet, do a full detect */
4482 if (!intel_dp->detect_done) 4472 if (!intel_dp->detect_done)
4483 status = intel_dp_long_pulse(intel_dp->attached_connector); 4473 status = intel_dp_long_pulse(intel_dp->attached_connector);