[PATCH v2 9/9] drm/i915: Leave interrupts enabled while disabling crtcs during suspend

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Mon May 26 04:46:32 PDT 2014


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

The new watermaek update mechanism requires interrupts to work
correctly. Because of this we need interrupts while disabling crtcs
during suspend. So move the irq disable to happen a bit later.

This also avoid clobbering the vblank.last count in case the
vblank interrupt was already disabled earlier by the timer.
In that case drm_vblank_off() will need .last to be correct so
that it can update the user visible vblank counter value
approapriately.

v2: Note vblank counter in commit message

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 4619c9e..21554a0 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -524,7 +524,6 @@ static int i915_drm_freeze(struct drm_device *dev)
 			return error;
 		}
 
-		drm_irq_uninstall(dev);
 		dev_priv->enable_hotplug_processing = false;
 
 		intel_disable_gt_powersave(dev);
@@ -541,6 +540,8 @@ static int i915_drm_freeze(struct drm_device *dev)
 		}
 		mutex_unlock(&dev->mode_config.mutex);
 
+		drm_irq_uninstall(dev);
+
 		intel_modeset_suspend_hw(dev);
 	}
 
-- 
1.8.5.5



More information about the dri-devel mailing list