]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Revert hdmi HDP pin checks
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 21 Feb 2013 23:53:04 +0000 (00:53 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 22 Feb 2013 12:04:33 +0000 (13:04 +0100)
This reverts

commit 0cbabcf16dc92dae56b80583a5c71d922d152db7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 11 18:01:34 2012 +0100

    drm/i915/hdmi: Query the live connector status bit for G4x

and

commit 323c8a8901e8eec77b2411bdaa6df5627df3cd1d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Dec 13 16:09:00 2012 +0000

    drm/i915/hdmi: Read the HPD status before trying to read the EDID

They reliably cause HDMI to not be detected on some systems (like my
ivb or the bug reporters gm45). To fix up the very slow unplug issues
we might want to fire up a 2nd detect cycle a few hundred ms after
each hotplug. But for now at least make displays work again.

I somewhat suspect that this is confined to HDMI connectors, since all
the machines I have with DP+ outputs work correctly.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52361
Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org.kernel.org # for 0cbabcf1
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_hdmi.c

index 5a6138c62fe997f1b2d31211747fdb277372f645..3647d03f21ce2de3f82ebf9c3e45d0847177e253 100644 (file)
@@ -793,28 +793,6 @@ bool intel_hdmi_mode_fixup(struct drm_encoder *encoder,
        return true;
 }
 
-static bool g4x_hdmi_connected(struct intel_hdmi *intel_hdmi)
-{
-       struct drm_device *dev = intel_hdmi_to_dev(intel_hdmi);
-       struct drm_i915_private *dev_priv = dev->dev_private;
-       struct intel_digital_port *intel_dig_port = hdmi_to_dig_port(intel_hdmi);
-       uint32_t bit;
-
-       switch (intel_dig_port->port) {
-       case PORT_B:
-               bit = PORTB_HOTPLUG_LIVE_STATUS;
-               break;
-       case PORT_C:
-               bit = PORTC_HOTPLUG_LIVE_STATUS;
-               break;
-       default:
-               bit = 0;
-               break;
-       }
-
-       return I915_READ(PORT_HOTPLUG_STAT) & bit;
-}
-
 static enum drm_connector_status
 intel_hdmi_detect(struct drm_connector *connector, bool force)
 {
@@ -827,13 +805,6 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
        struct edid *edid;
        enum drm_connector_status status = connector_status_disconnected;
 
-
-       if (IS_G4X(dev) && !g4x_hdmi_connected(intel_hdmi))
-               return status;
-       else if (HAS_PCH_SPLIT(dev) &&
-                !ibx_digital_port_connected(dev_priv, intel_dig_port))
-                return status;
-
        intel_hdmi->has_hdmi_sink = false;
        intel_hdmi->has_audio = false;
        intel_hdmi->rgb_quant_range_selectable = false;