aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/intel_hdmi.c
diff options
context:
space:
mode:
authorGravatar Imre Deak <imre.deak@intel.com> 2014-03-05 16:20:54 +0200
committerGravatar Daniel Vetter <daniel.vetter@ffwll.ch> 2014-03-07 22:36:52 +0100
commit6d129beac7099bddad368b6a02e8e0a67f59e9b8 (patch)
tree6df29848071794a055452606f44768b07e048e1e /drivers/gpu/drm/i915/intel_hdmi.c
parentdrm/i915: get port power domain in connector detect handlers (diff)
downloadlinux-6d129beac7099bddad368b6a02e8e0a67f59e9b8.tar.gz
linux-6d129beac7099bddad368b6a02e8e0a67f59e9b8.tar.bz2
linux-6d129beac7099bddad368b6a02e8e0a67f59e9b8.zip
drm/i915: check port power domain when reading the encoder hw state
Since the encoder is tied to its port, we need to make sure the power domain for that port is on before reading out the encoder HW state. Note that this also covers also all connector get_hw_state handlers, since all those just call the corresponding encoder get_hw_state handler, which checks - after this change - for all power domains the connector needs. v2: - no change v3: - push down the power domain checks into the specific encoder get_hw_state handlers (Daniel) Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index ebccbbff0f15..f410cc03e08a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -667,8 +667,13 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder *encoder,
struct drm_device *dev = encoder->base.dev;
struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+ enum intel_display_power_domain power_domain;
u32 tmp;
+ power_domain = intel_display_port_power_domain(encoder);
+ if (!intel_display_power_enabled(dev_priv, power_domain))
+ return false;
+
tmp = I915_READ(intel_hdmi->hdmi_reg);
if (!(tmp & SDVO_ENABLE))