diff options
author | Deepak S <deepak.s@linux.intel.com> | 2014-07-12 09:16:14 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-07-11 12:22:02 -0400 |
commit | 7707df4ad6c73e005098c4b4db2f86494e9d404d (patch) | |
tree | 9091b16aae2df958323c524934c14696a5bace55 | |
parent | 3497a5620caec0ae25e3fa3b6828f1cdeac80ec0 (diff) |
drm/i915: Add RP1 render P state thresholds in CHV
This is useful for userspace utilities to verify and micromanaging
the increase/decrease frequncy.
v2: Use vlv_gpu_freq to get freq (Deepak)
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 58a03f863379..97be125992d5 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -3803,6 +3803,16 @@ static int cherryview_rps_rpe_freq(struct drm_i915_private *dev_priv) | |||
3803 | return rpe; | 3803 | return rpe; |
3804 | } | 3804 | } |
3805 | 3805 | ||
3806 | static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv) | ||
3807 | { | ||
3808 | u32 val, rp1; | ||
3809 | |||
3810 | val = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS); | ||
3811 | rp1 = (val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) & PUNIT_GPU_STATUS_MAX_FREQ_MASK; | ||
3812 | |||
3813 | return rp1; | ||
3814 | } | ||
3815 | |||
3806 | static int cherryview_rps_min_freq(struct drm_i915_private *dev_priv) | 3816 | static int cherryview_rps_min_freq(struct drm_i915_private *dev_priv) |
3807 | { | 3817 | { |
3808 | u32 val, rpn; | 3818 | u32 val, rpn; |
@@ -4004,6 +4014,11 @@ static void cherryview_init_gt_powersave(struct drm_device *dev) | |||
4004 | vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), | 4014 | vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), |
4005 | dev_priv->rps.efficient_freq); | 4015 | dev_priv->rps.efficient_freq); |
4006 | 4016 | ||
4017 | dev_priv->rps.rp1_freq = cherryview_rps_guar_freq(dev_priv); | ||
4018 | DRM_DEBUG_DRIVER("RP1(Guar) GPU freq: %d MHz (%u)\n", | ||
4019 | vlv_gpu_freq(dev_priv, dev_priv->rps.rp1_freq), | ||
4020 | dev_priv->rps.rp1_freq); | ||
4021 | |||
4007 | dev_priv->rps.min_freq = cherryview_rps_min_freq(dev_priv); | 4022 | dev_priv->rps.min_freq = cherryview_rps_min_freq(dev_priv); |
4008 | DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n", | 4023 | DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n", |
4009 | vlv_gpu_freq(dev_priv, dev_priv->rps.min_freq), | 4024 | vlv_gpu_freq(dev_priv, dev_priv->rps.min_freq), |