diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 062d1d27f704..308f81913562 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
| @@ -954,9 +954,14 @@ MODULE_LICENSE("GPL and additional rights"); | |||
| 954 | u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg) { \ | 954 | u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg) { \ |
| 955 | u##x val = 0; \ | 955 | u##x val = 0; \ |
| 956 | if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ | 956 | if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ |
| 957 | gen6_gt_force_wake_get(dev_priv); \ | 957 | unsigned long irqflags; \ |
| 958 | spin_lock_irqsave(&dev_priv->gt_lock, irqflags); \ | ||
| 959 | if (dev_priv->forcewake_count == 0) \ | ||
| 960 | dev_priv->display.force_wake_get(dev_priv); \ | ||
| 958 | val = read##y(dev_priv->regs + reg); \ | 961 | val = read##y(dev_priv->regs + reg); \ |
| 959 | gen6_gt_force_wake_put(dev_priv); \ | 962 | if (dev_priv->forcewake_count == 0) \ |
| 963 | dev_priv->display.force_wake_put(dev_priv); \ | ||
| 964 | spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags); \ | ||
| 960 | } else { \ | 965 | } else { \ |
| 961 | val = read##y(dev_priv->regs + reg); \ | 966 | val = read##y(dev_priv->regs + reg); \ |
| 962 | } \ | 967 | } \ |
