From b13d8bbc5827d2e36959bc7b45369287161e8817 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 6 Jan 2012 11:48:38 -0800 Subject: [PATCH] --- yaml --- r: 286843 b: refs/heads/master c: c937504e2b96af3b281b1ef859e063ef4af656c1 h: refs/heads/master i: 286841: 299773db9c680d17145b7feb1f7ca1d9b2fa73f6 286839: f598fb5f39b249ee68d0ce8ea2c01447a27d0d08 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a80526a8caac..2a45c97b46a4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 286fed412a134e76be55899bc628c6fa59cb70da +refs/heads/master: c937504e2b96af3b281b1ef859e063ef4af656c1 diff --git a/trunk/drivers/gpu/drm/i915/i915_drv.c b/trunk/drivers/gpu/drm/i915/i915_drv.c index 062d1d27f704..308f81913562 100644 --- a/trunk/drivers/gpu/drm/i915/i915_drv.c +++ b/trunk/drivers/gpu/drm/i915/i915_drv.c @@ -954,9 +954,14 @@ MODULE_LICENSE("GPL and additional rights"); u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg) { \ u##x val = 0; \ if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ - gen6_gt_force_wake_get(dev_priv); \ + unsigned long irqflags; \ + spin_lock_irqsave(&dev_priv->gt_lock, irqflags); \ + if (dev_priv->forcewake_count == 0) \ + dev_priv->display.force_wake_get(dev_priv); \ val = read##y(dev_priv->regs + reg); \ - gen6_gt_force_wake_put(dev_priv); \ + if (dev_priv->forcewake_count == 0) \ + dev_priv->display.force_wake_put(dev_priv); \ + spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags); \ } else { \ val = read##y(dev_priv->regs + reg); \ } \