drm/i915: Don't get hw state from DVO chip unless DVO is enabled
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 5 Jun 2014 16:15:52 +0000 (19:15 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 13 Jun 2014 13:17:37 +0000 (15:17 +0200)
Certain DVO chips (ns2501 for example) don't like to be accessed unless
the PLL is running. Simply skip the DVO get_hw_state if the DVO port
is disabled.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dvo.c

index a3631c0a5c283695ac75147dda830618f3ad55cc..5d7d97522bdcd6a2ecebcd15dbd0b20cd765a90d 100644 (file)
@@ -112,7 +112,15 @@ static struct intel_dvo *intel_attached_dvo(struct drm_connector *connector)
 
 static bool intel_dvo_connector_get_hw_state(struct intel_connector *connector)
 {
+       struct drm_device *dev = connector->base.dev;
+       struct drm_i915_private *dev_priv = dev->dev_private;
        struct intel_dvo *intel_dvo = intel_attached_dvo(&connector->base);
+       u32 tmp;
+
+       tmp = I915_READ(intel_dvo->dev.dvo_reg);
+
+       if (!(tmp & DVO_ENABLE))
+               return false;
 
        return intel_dvo->dev.dev_ops->get_hw_state(&intel_dvo->dev);
 }