aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter2013-04-02 14:30:34 -0500
committerGreg Kroah-Hartman2013-05-11 15:54:00 -0500
commit1947c19a70d4cc00421a295a3a75f342489c26b5 (patch)
treeea4857253ddbbaeedcebb5bd8cb29abc9bd4aeb1
parente7066b70bb8f147cda6fe039006bafee89128136 (diff)
downloadkernel-omap-1947c19a70d4cc00421a295a3a75f342489c26b5.tar.gz
kernel-omap-1947c19a70d4cc00421a295a3a75f342489c26b5.tar.xz
kernel-omap-1947c19a70d4cc00421a295a3a75f342489c26b5.zip
drm/i915: Fix sdvo connector get_hw_state function
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>
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index c275bf0fa36d..dfb5068a4e29 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -1197,8 +1197,12 @@ static bool intel_sdvo_connector_get_hw_state(struct intel_connector *connector)
1197 struct intel_sdvo_connector *intel_sdvo_connector = 1197 struct intel_sdvo_connector *intel_sdvo_connector =
1198 to_intel_sdvo_connector(&connector->base); 1198 to_intel_sdvo_connector(&connector->base);
1199 struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base); 1199 struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base);
1200 struct drm_i915_private *dev_priv = intel_sdvo->base.base.dev->dev_private;
1200 u16 active_outputs; 1201 u16 active_outputs;
1201 1202
1203 if (!(I915_READ(intel_sdvo->sdvo_reg) & SDVO_ENABLE))
1204 return false;
1205
1202 intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs); 1206 intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
1203 1207
1204 if (active_outputs & intel_sdvo_connector->output_flag) 1208 if (active_outputs & intel_sdvo_connector->output_flag)