]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/i915: Fix sdvo connector get_hw_state function
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 2 Apr 2013 19:30:34 +0000 (21:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 May 2013 14:18:26 +0000 (07:18 -0700)
commit bd6946e87a98fea11907b2a47368e13044458a35 upstream.

The active output is only the currently selected one, which does not
imply that it's actually enabled. Since we don't use the sdvo encoder
side dpms support, we need to check whether the chip-side sdvo port is
enabled instead.

v2: Fix up Bugzilla links.

v3: Simplify logic a bit (Chris).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60138
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63031
Cc: Egbert Eich <eich@pdx.freedesktop.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Egbert Eich <eich@pdx.freedesktop.org> (v2)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/intel_sdvo.c

index d07a8cdf998ec4b1eadda9aa9906a8053f25b1ee..edba5f15932a08e8eb0a57da773a37c7dd3452ae 100644 (file)
@@ -1219,8 +1219,12 @@ static bool intel_sdvo_connector_get_hw_state(struct intel_connector *connector)
        struct intel_sdvo_connector *intel_sdvo_connector =
                to_intel_sdvo_connector(&connector->base);
        struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base);
+       struct drm_i915_private *dev_priv = intel_sdvo->base.base.dev->dev_private;
        u16 active_outputs;
 
+       if (!(I915_READ(intel_sdvo->sdvo_reg) & SDVO_ENABLE))
+               return false;
+
        intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
 
        if (active_outputs & intel_sdvo_connector->output_flag)