diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-11-29 20:08:56 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-12-01 12:42:16 -0500 |
commit | 28cf798f5a9bd894ee90b27667b0d36b4933ae23 (patch) | |
tree | bb294f5f20cfc3d55ed08e93d718e9897d037cfd /drivers/gpu/drm/i915/intel_display.c | |
parent | 38b3037ee47fbd65a36bc7c39f60a900fbbe3b8e (diff) |
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 <chris@chris-wilson.co.uk>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a0f2941d7d7c..267adc6fbfc1 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) | |||
4052 | if (!drm_core_check_feature(dev, DRIVER_MODESET)) | 4052 | if (!drm_core_check_feature(dev, DRIVER_MODESET)) |
4053 | return; | 4053 | return; |
4054 | 4054 | ||
4055 | dev_priv->busy = true; | 4055 | if (!dev_priv->busy) { |
4056 | intel_increase_renderclock(dev, true); | 4056 | dev_priv->busy = true; |
4057 | intel_increase_renderclock(dev, true); | ||
4058 | } else { | ||
4059 | mod_timer(&dev_priv->idle_timer, jiffies + | ||
4060 | msecs_to_jiffies(GPU_IDLE_TIMEOUT)); | ||
4061 | } | ||
4057 | 4062 | ||
4058 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 4063 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { |
4059 | if (!crtc->fb) | 4064 | if (!crtc->fb) |