aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak S <deepak.s@linux.intel.com>2014-07-10 03:46:26 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-07-11 12:22:01 -0400
commit3497a5620caec0ae25e3fa3b6828f1cdeac80ec0 (patch)
tree7017288540d8cc577cefb8768ac088fb5e518ea8
parent22b1b2f866b2089d8264e367121c9c9ee0689da4 (diff)
drm/i915/chv: Add basic PM interrupt support for CHV
Enabled PM interrupt programming for CHV. Re-using gen8 code and extending same for CHV. Signed-off-by: Deepak S <deepak.s@linux.intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c2
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 30fd63708b1a..188fe04c4f8d 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1407,7 +1407,7 @@ static void gen6_pm_rps_work(struct work_struct *work)
1407 spin_lock_irq(&dev_priv->irq_lock); 1407 spin_lock_irq(&dev_priv->irq_lock);
1408 pm_iir = dev_priv->rps.pm_iir; 1408 pm_iir = dev_priv->rps.pm_iir;
1409 dev_priv->rps.pm_iir = 0; 1409 dev_priv->rps.pm_iir = 0;
1410 if (IS_BROADWELL(dev_priv->dev)) 1410 if (IS_BROADWELL(dev_priv->dev) || IS_CHERRYVIEW(dev_priv->dev))
1411 bdw_enable_pm_irq(dev_priv, dev_priv->pm_rps_events); 1411 bdw_enable_pm_irq(dev_priv, dev_priv->pm_rps_events);
1412 else { 1412 else {
1413 /* Make sure not to corrupt PMIMR state used by ringbuffer */ 1413 /* Make sure not to corrupt PMIMR state used by ringbuffer */
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 1ec777a3914a..58a03f863379 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3392,6 +3392,8 @@ static void cherryview_disable_rps(struct drm_device *dev)
3392 struct drm_i915_private *dev_priv = dev->dev_private; 3392 struct drm_i915_private *dev_priv = dev->dev_private;
3393 3393
3394 I915_WRITE(GEN6_RC_CONTROL, 0); 3394 I915_WRITE(GEN6_RC_CONTROL, 0);
3395
3396 gen8_disable_rps_interrupts(dev);
3395} 3397}
3396 3398
3397static void valleyview_disable_rps(struct drm_device *dev) 3399static void valleyview_disable_rps(struct drm_device *dev)
@@ -4109,6 +4111,8 @@ static void cherryview_enable_rps(struct drm_device *dev)
4109 4111
4110 valleyview_set_rps(dev_priv->dev, dev_priv->rps.efficient_freq); 4112 valleyview_set_rps(dev_priv->dev, dev_priv->rps.efficient_freq);
4111 4113
4114 gen8_enable_rps_interrupts(dev);
4115
4112 gen6_gt_force_wake_put(dev_priv, FORCEWAKE_ALL); 4116 gen6_gt_force_wake_put(dev_priv, FORCEWAKE_ALL);
4113} 4117}
4114 4118