diff options
author | Imre Deak <imre.deak@intel.com> | 2016-02-12 18:55:13 +0200 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2016-02-17 16:09:30 +0200 |
commit | 6392f8478e6f119467b1ad06e30e1f078e62efc1 (patch) | |
tree | a7b24c8f6fed1d9e53a6bc07a8a2b37a6a92d21a /drivers/gpu/drm/i915/intel_display.c | |
parent | 12fda3876d08519bdf6f0acc70dd35754b422ed5 (diff) | |
download | linux-stable-6392f8478e6f119467b1ad06e30e1f078e62efc1.tar.gz linux-stable-6392f8478e6f119467b1ad06e30e1f078e62efc1.tar.bz2 linux-stable-6392f8478e6f119467b1ad06e30e1f078e62efc1.zip |
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
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 |
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) * level, just check if the power well is enabled instead of trying to * follow the "don't touch the power well if we don't need it" policy * the rest of the driver uses. */ - if (!intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_VGA)) + if (!intel_display_power_get_if_enabled(dev_priv, POWER_DOMAIN_VGA)) return; i915_redisable_vga_power_on(dev); + + intel_display_power_put(dev_priv, POWER_DOMAIN_VGA); } static bool primary_get_hw_state(struct intel_plane *plane) |