aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_pm.c
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-11-03 00:07:49 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-11-08 12:10:00 -0500
commit46c764d41f54ca9f03c50b5d7845bc97ac46c11a (patch)
tree77867779e99021b84fc3ee5f6dc0a8742c0fe5ac /drivers/gpu/drm/i915/intel_pm.c
parented8546ac1f99b850879f07b1e9b06b42fb0a36d9 (diff)
drm/i915/bdw: Use HSW formula for ring freq scaling
The current formula we use for HSW is not what is in current docs. However, changing to the HSW formula on my HSW does not improve power usage, and decreases performance by about 5% in limited xonotic testing. For gen8, until we know otherwise, or run experiments, let's use the HSW formula - which should be the same used in the Windows driver (and thus help make an apples-applies comparison) on gen8. v2: Use >= 8 instead of > 7 to be consistent with all other gen checks. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 0ca8eb765e2f..99658468cd9e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3924,7 +3924,10 @@ void gen6_update_ring_freq(struct drm_device *dev)
3924 int diff = dev_priv->rps.max_delay - gpu_freq; 3924 int diff = dev_priv->rps.max_delay - gpu_freq;
3925 unsigned int ia_freq = 0, ring_freq = 0; 3925 unsigned int ia_freq = 0, ring_freq = 0;
3926 3926
3927 if (IS_HASWELL(dev)) { 3927 if (INTEL_INFO(dev)->gen >= 8) {
3928 /* max(2 * GT, DDR). NB: GT is 50MHz units */
3929 ring_freq = max(min_ring_freq, gpu_freq);
3930 } else if (IS_HASWELL(dev)) {
3928 ring_freq = mult_frac(gpu_freq, 5, 4); 3931 ring_freq = mult_frac(gpu_freq, 5, 4);
3929 ring_freq = max(min_ring_freq, ring_freq); 3932 ring_freq = max(min_ring_freq, ring_freq);
3930 /* leave ia_freq as the default, chosen by cpufreq */ 3933 /* leave ia_freq as the default, chosen by cpufreq */