drm/i915: Don't increase the GPU frequency from the delayed VLV rps timer
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 25 Jun 2013 18:38:10 +0000 (21:38 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 1 Jul 2013 09:14:50 +0000 (11:14 +0200)
There's little point in increasing the GPU frequency from the delayed
rps work on VLV. Now when the GPU is idle, the GPU frequency actually
keeps dropping gradually until it hits the minimum, whereas previously
it just ping-ponged constantly between RPe and RPe-1.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index ed929667c5ba5dfca7f693506ae7efba58f09ab2..ccbdd83f5220e2811a1c6f86cb2068c7aac493e3 100644 (file)
@@ -3461,7 +3461,8 @@ static void vlv_rps_timer_work(struct work_struct *work)
         * min freq available.
         */
        mutex_lock(&dev_priv->rps.hw_lock);
-       valleyview_set_rps(dev_priv->dev, dev_priv->rps.rpe_delay);
+       if (dev_priv->rps.cur_delay > dev_priv->rps.rpe_delay)
+               valleyview_set_rps(dev_priv->dev, dev_priv->rps.rpe_delay);
        mutex_unlock(&dev_priv->rps.hw_lock);
 }