aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index c10d2f1af0be..e0c6f7d6189d 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -167,11 +167,6 @@ void snb_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask)
167 snb_update_pm_irq(dev_priv, mask, 0); 167 snb_update_pm_irq(dev_priv, mask, 0);
168} 168}
169 169
170static void snb_set_pm_irq(struct drm_i915_private *dev_priv, uint32_t val)
171{
172 snb_update_pm_irq(dev_priv, 0xffffffff, ~val);
173}
174
175static bool ivb_can_enable_err_int(struct drm_device *dev) 170static bool ivb_can_enable_err_int(struct drm_device *dev)
176{ 171{
177 struct drm_i915_private *dev_priv = dev->dev_private; 172 struct drm_i915_private *dev_priv = dev->dev_private;
@@ -963,7 +958,7 @@ static void gen6_rps_irq_handler(struct drm_i915_private *dev_priv,
963 958
964 spin_lock(&dev_priv->irq_lock); 959 spin_lock(&dev_priv->irq_lock);
965 dev_priv->rps.pm_iir |= pm_iir & GEN6_PM_RPS_EVENTS; 960 dev_priv->rps.pm_iir |= pm_iir & GEN6_PM_RPS_EVENTS;
966 snb_set_pm_irq(dev_priv, dev_priv->rps.pm_iir); 961 snb_disable_pm_irq(dev_priv, pm_iir & GEN6_PM_RPS_EVENTS);
967 spin_unlock(&dev_priv->irq_lock); 962 spin_unlock(&dev_priv->irq_lock);
968 963
969 queue_work(dev_priv->wq, &dev_priv->rps.work); 964 queue_work(dev_priv->wq, &dev_priv->rps.work);
@@ -1046,9 +1041,7 @@ static void hsw_pm_irq_handler(struct drm_i915_private *dev_priv,
1046 if (pm_iir & GEN6_PM_RPS_EVENTS) { 1041 if (pm_iir & GEN6_PM_RPS_EVENTS) {
1047 spin_lock(&dev_priv->irq_lock); 1042 spin_lock(&dev_priv->irq_lock);
1048 dev_priv->rps.pm_iir |= pm_iir & GEN6_PM_RPS_EVENTS; 1043 dev_priv->rps.pm_iir |= pm_iir & GEN6_PM_RPS_EVENTS;
1049 snb_set_pm_irq(dev_priv, dev_priv->rps.pm_iir); 1044 snb_disable_pm_irq(dev_priv, pm_iir & GEN6_PM_RPS_EVENTS);
1050 /* never want to mask useful interrupts. */
1051 WARN_ON(I915_READ_NOTRACE(GEN6_PMIMR) & ~GEN6_PM_RPS_EVENTS);
1052 spin_unlock(&dev_priv->irq_lock); 1045 spin_unlock(&dev_priv->irq_lock);
1053 1046
1054 queue_work(dev_priv->wq, &dev_priv->rps.work); 1047 queue_work(dev_priv->wq, &dev_priv->rps.work);