From: Chris Wilson Date: Mon, 30 Nov 2009 01:08:56 +0000 (+0000) Subject: drm/i915: Don't update the render-clock for every bo. X-Git-Tag: v2.6.33-rc1~323^2~5^2~13 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=28cf798f5a9bd894ee90b27667b0d36b4933ae23;p=~shefty%2Frdma-dev.git drm/i915: Don't update the render-clock for every bo. Only update the render-clock on transition from busy to idle and vice versa, or else we burn a significant percentage of the cpu just rewriting the register -- not quite as power-friendly as intended ;-) Signed-off-by: Chris Wilson Cc: Jesse Barnes Signed-off-by: Eric Anholt --- diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a0f2941d7d7..267adc6fbfc 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -4052,8 +4052,13 @@ void intel_mark_busy(struct drm_device *dev, struct drm_gem_object *obj) if (!drm_core_check_feature(dev, DRIVER_MODESET)) return; - dev_priv->busy = true; - intel_increase_renderclock(dev, true); + if (!dev_priv->busy) { + dev_priv->busy = true; + intel_increase_renderclock(dev, true); + } else { + mod_timer(&dev_priv->idle_timer, jiffies + + msecs_to_jiffies(GPU_IDLE_TIMEOUT)); + } list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { if (!crtc->fb)