aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2014-06-27 19:03:53 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-07-11 10:03:17 -0400
commit03af20458a57a50735b12c1e3c23abc7ff70c6fa (patch)
tree4de5b61ff4561c0c2d9acc4c1e8bbf58b6e1b4aa
parentca2aed6cec9ed3a11a95771d8ef4265247031157 (diff)
drm/i915: Use the cached min/min/rpe values in the vlv debugfs code
No need to re-read the hardware rps fuses when we already have all the values tucked away in dev_priv->rps. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c19
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h2
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c8
3 files changed, 14 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 4a5b0f80e059..981ca4243bd3 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1108,20 +1108,21 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
1108 seq_printf(m, "Max overclocked frequency: %dMHz\n", 1108 seq_printf(m, "Max overclocked frequency: %dMHz\n",
1109 dev_priv->rps.max_freq * GT_FREQUENCY_MULTIPLIER); 1109 dev_priv->rps.max_freq * GT_FREQUENCY_MULTIPLIER);
1110 } else if (IS_VALLEYVIEW(dev)) { 1110 } else if (IS_VALLEYVIEW(dev)) {
1111 u32 freq_sts, val; 1111 u32 freq_sts;
1112 1112
1113 mutex_lock(&dev_priv->rps.hw_lock); 1113 mutex_lock(&dev_priv->rps.hw_lock);
1114 freq_sts = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS); 1114 freq_sts = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS);
1115 seq_printf(m, "PUNIT_REG_GPU_FREQ_STS: 0x%08x\n", freq_sts); 1115 seq_printf(m, "PUNIT_REG_GPU_FREQ_STS: 0x%08x\n", freq_sts);
1116 seq_printf(m, "DDR freq: %d MHz\n", dev_priv->mem_freq); 1116 seq_printf(m, "DDR freq: %d MHz\n", dev_priv->mem_freq);
1117 1117
1118 val = valleyview_rps_max_freq(dev_priv);
1119 seq_printf(m, "max GPU freq: %d MHz\n", 1118 seq_printf(m, "max GPU freq: %d MHz\n",
1120 vlv_gpu_freq(dev_priv, val)); 1119 dev_priv->rps.max_freq);
1121 1120
1122 val = valleyview_rps_min_freq(dev_priv);
1123 seq_printf(m, "min GPU freq: %d MHz\n", 1121 seq_printf(m, "min GPU freq: %d MHz\n",
1124 vlv_gpu_freq(dev_priv, val)); 1122 dev_priv->rps.min_freq);
1123
1124 seq_printf(m, "efficient (RPe) frequency: %d MHz\n",
1125 dev_priv->rps.efficient_freq);
1125 1126
1126 seq_printf(m, "current GPU freq: %d MHz\n", 1127 seq_printf(m, "current GPU freq: %d MHz\n",
1127 vlv_gpu_freq(dev_priv, (freq_sts >> 8) & 0xff)); 1128 vlv_gpu_freq(dev_priv, (freq_sts >> 8) & 0xff));
@@ -3632,8 +3633,8 @@ i915_max_freq_set(void *data, u64 val)
3632 if (IS_VALLEYVIEW(dev)) { 3633 if (IS_VALLEYVIEW(dev)) {
3633 val = vlv_freq_opcode(dev_priv, val); 3634 val = vlv_freq_opcode(dev_priv, val);
3634 3635
3635 hw_max = valleyview_rps_max_freq(dev_priv); 3636 hw_max = dev_priv->rps.max_freq;
3636 hw_min = valleyview_rps_min_freq(dev_priv); 3637 hw_min = dev_priv->rps.min_freq;
3637 } else { 3638 } else {
3638 do_div(val, GT_FREQUENCY_MULTIPLIER); 3639 do_div(val, GT_FREQUENCY_MULTIPLIER);
3639 3640
@@ -3713,8 +3714,8 @@ i915_min_freq_set(void *data, u64 val)
3713 if (IS_VALLEYVIEW(dev)) { 3714 if (IS_VALLEYVIEW(dev)) {
3714 val = vlv_freq_opcode(dev_priv, val); 3715 val = vlv_freq_opcode(dev_priv, val);
3715 3716
3716 hw_max = valleyview_rps_max_freq(dev_priv); 3717 hw_max = dev_priv->rps.max_freq;
3717 hw_min = valleyview_rps_min_freq(dev_priv); 3718 hw_min = dev_priv->rps.min_freq;
3718 } else { 3719 } else {
3719 do_div(val, GT_FREQUENCY_MULTIPLIER); 3720 do_div(val, GT_FREQUENCY_MULTIPLIER);
3720 3721
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 263a8799eb59..7031757628ff 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2684,8 +2684,6 @@ extern bool ironlake_set_drps(struct drm_device *dev, u8 val);
2684extern void intel_init_pch_refclk(struct drm_device *dev); 2684extern void intel_init_pch_refclk(struct drm_device *dev);
2685extern void gen6_set_rps(struct drm_device *dev, u8 val); 2685extern void gen6_set_rps(struct drm_device *dev, u8 val);
2686extern void valleyview_set_rps(struct drm_device *dev, u8 val); 2686extern void valleyview_set_rps(struct drm_device *dev, u8 val);
2687extern int valleyview_rps_max_freq(struct drm_i915_private *dev_priv);
2688extern int valleyview_rps_min_freq(struct drm_i915_private *dev_priv);
2689extern void intel_set_memory_cxsr(struct drm_i915_private *dev_priv, 2687extern void intel_set_memory_cxsr(struct drm_i915_private *dev_priv,
2690 bool enable); 2688 bool enable);
2691extern void intel_detect_pch(struct drm_device *dev); 2689extern void intel_detect_pch(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 780c3ab26f4f..2bc08a28268e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3781,7 +3781,7 @@ void gen6_update_ring_freq(struct drm_device *dev)
3781 mutex_unlock(&dev_priv->rps.hw_lock); 3781 mutex_unlock(&dev_priv->rps.hw_lock);
3782} 3782}
3783 3783
3784int cherryview_rps_max_freq(struct drm_i915_private *dev_priv) 3784static int cherryview_rps_max_freq(struct drm_i915_private *dev_priv)
3785{ 3785{
3786 u32 val, rp0; 3786 u32 val, rp0;
3787 3787
@@ -3801,7 +3801,7 @@ static int cherryview_rps_rpe_freq(struct drm_i915_private *dev_priv)
3801 return rpe; 3801 return rpe;
3802} 3802}
3803 3803
3804int cherryview_rps_min_freq(struct drm_i915_private *dev_priv) 3804static int cherryview_rps_min_freq(struct drm_i915_private *dev_priv)
3805{ 3805{
3806 u32 val, rpn; 3806 u32 val, rpn;
3807 3807
@@ -3810,7 +3810,7 @@ int cherryview_rps_min_freq(struct drm_i915_private *dev_priv)
3810 return rpn; 3810 return rpn;
3811} 3811}
3812 3812
3813int valleyview_rps_max_freq(struct drm_i915_private *dev_priv) 3813static int valleyview_rps_max_freq(struct drm_i915_private *dev_priv)
3814{ 3814{
3815 u32 val, rp0; 3815 u32 val, rp0;
3816 3816
@@ -3835,7 +3835,7 @@ static int valleyview_rps_rpe_freq(struct drm_i915_private *dev_priv)
3835 return rpe; 3835 return rpe;
3836} 3836}
3837 3837
3838int valleyview_rps_min_freq(struct drm_i915_private *dev_priv) 3838static int valleyview_rps_min_freq(struct drm_i915_private *dev_priv)
3839{ 3839{
3840 return vlv_punit_read(dev_priv, PUNIT_REG_GPU_LFM) & 0xff; 3840 return vlv_punit_read(dev_priv, PUNIT_REG_GPU_LFM) & 0xff;
3841} 3841}