aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2016-02-12 11:55:13 -0500
committerImre Deak <imre.deak@intel.com>2016-02-17 09:09:30 -0500
commit6392f8478e6f119467b1ad06e30e1f078e62efc1 (patch)
treea7b24c8f6fed1d9e53a6bc07a8a2b37a6a92d21a
parent12fda3876d08519bdf6f0acc70dd35754b422ed5 (diff)
drm/i915: Ensure the HW is powered when disabling VGA
The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-5-git-send-email-imre.deak@intel.com
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 82b05ca94cf8..f35d88fb5724 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15664,10 +15664,12 @@ void i915_redisable_vga(struct drm_device *dev)
15664 * level, just check if the power well is enabled instead of trying to 15664 * level, just check if the power well is enabled instead of trying to
15665 * follow the "don't touch the power well if we don't need it" policy 15665 * follow the "don't touch the power well if we don't need it" policy
15666 * the rest of the driver uses. */ 15666 * the rest of the driver uses. */
15667 if (!intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_VGA)) 15667 if (!intel_display_power_get_if_enabled(dev_priv, POWER_DOMAIN_VGA))
15668 return; 15668 return;
15669 15669
15670 i915_redisable_vga_power_on(dev); 15670 i915_redisable_vga_power_on(dev);
15671
15672 intel_display_power_put(dev_priv, POWER_DOMAIN_VGA);
15671} 15673}
15672 15674
15673static bool primary_get_hw_state(struct intel_plane *plane) 15675static bool primary_get_hw_state(struct intel_plane *plane)