Commit 2a5913a8 authored by Ben Widawsky's avatar Ben Widawsky Committed by Daniel Vetter

drm/i915: remove rps local variables

With the renamed RPS struct members, it's easier to skip the local
variables which no longer clarify anything, and if anything just make
the code harder to read.

The real motivation for this patch is actually the next patch, which
attempts to consolidate some of the functionality.

Cc: Jeff McGee <jeff.mcgee@intel.com>
Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 04da7e77
...@@ -313,7 +313,7 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev, ...@@ -313,7 +313,7 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev,
struct drm_minor *minor = dev_to_drm_minor(kdev); struct drm_minor *minor = dev_to_drm_minor(kdev);
struct drm_device *dev = minor->dev; struct drm_device *dev = minor->dev;
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
u32 val, hw_max, hw_min, non_oc_max; u32 val;
ssize_t ret; ssize_t ret;
ret = kstrtou32(buf, 0, &val); ret = kstrtou32(buf, 0, &val);
...@@ -324,26 +324,19 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev, ...@@ -324,26 +324,19 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev,
mutex_lock(&dev_priv->rps.hw_lock); mutex_lock(&dev_priv->rps.hw_lock);
if (IS_VALLEYVIEW(dev_priv->dev)) { if (IS_VALLEYVIEW(dev_priv->dev))
val = vlv_freq_opcode(dev_priv, val); val = vlv_freq_opcode(dev_priv, val);
else
non_oc_max = hw_max = dev_priv->rps.max_freq;
hw_min = dev_priv->rps.min_freq;
} else {
val /= GT_FREQUENCY_MULTIPLIER; val /= GT_FREQUENCY_MULTIPLIER;
hw_max = dev_priv->rps.max_freq; if (val < dev_priv->rps.min_freq ||
non_oc_max = dev_priv->rps.rp0_freq; val > dev_priv->rps.max_freq ||
hw_min = dev_priv->rps.min_freq;
}
if (val < hw_min || val > hw_max ||
val < dev_priv->rps.min_freq_softlimit) { val < dev_priv->rps.min_freq_softlimit) {
mutex_unlock(&dev_priv->rps.hw_lock); mutex_unlock(&dev_priv->rps.hw_lock);
return -EINVAL; return -EINVAL;
} }
if (val > non_oc_max) if (val > dev_priv->rps.rp0_freq)
DRM_DEBUG("User requested overclocking to %d\n", DRM_DEBUG("User requested overclocking to %d\n",
val * GT_FREQUENCY_MULTIPLIER); val * GT_FREQUENCY_MULTIPLIER);
...@@ -392,7 +385,7 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev, ...@@ -392,7 +385,7 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev,
struct drm_minor *minor = dev_to_drm_minor(kdev); struct drm_minor *minor = dev_to_drm_minor(kdev);
struct drm_device *dev = minor->dev; struct drm_device *dev = minor->dev;
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
u32 val, hw_max, hw_min; u32 val;
ssize_t ret; ssize_t ret;
ret = kstrtou32(buf, 0, &val); ret = kstrtou32(buf, 0, &val);
...@@ -403,19 +396,14 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev, ...@@ -403,19 +396,14 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev,
mutex_lock(&dev_priv->rps.hw_lock); mutex_lock(&dev_priv->rps.hw_lock);
if (IS_VALLEYVIEW(dev)) { if (IS_VALLEYVIEW(dev))
val = vlv_freq_opcode(dev_priv, val); val = vlv_freq_opcode(dev_priv, val);
else
hw_max = dev_priv->rps.max_freq;
hw_min = dev_priv->rps.min_freq;
} else {
val /= GT_FREQUENCY_MULTIPLIER; val /= GT_FREQUENCY_MULTIPLIER;
hw_max = dev_priv->rps.max_freq; if (val < dev_priv->rps.min_freq ||
hw_min = dev_priv->rps.min_freq; val > dev_priv->rps.max_freq ||
} val > dev_priv->rps.max_freq_softlimit) {
if (val < hw_min || val > hw_max || val > dev_priv->rps.max_freq_softlimit) {
mutex_unlock(&dev_priv->rps.hw_lock); mutex_unlock(&dev_priv->rps.hw_lock);
return -EINVAL; return -EINVAL;
} }
......
...@@ -3324,7 +3324,7 @@ static void gen6_enable_rps(struct drm_device *dev) ...@@ -3324,7 +3324,7 @@ static void gen6_enable_rps(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_ring_buffer *ring; struct intel_ring_buffer *ring;
u32 rp_state_cap, hw_max, hw_min; u32 rp_state_cap;
u32 gt_perf_status; u32 gt_perf_status;
u32 rc6vids, pcu_mbox = 0, rc6_mask = 0; u32 rc6vids, pcu_mbox = 0, rc6_mask = 0;
u32 gtfifodbg; u32 gtfifodbg;
...@@ -3353,21 +3353,22 @@ static void gen6_enable_rps(struct drm_device *dev) ...@@ -3353,21 +3353,22 @@ static void gen6_enable_rps(struct drm_device *dev)
gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS); gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
/* All of these values are in units of 50MHz */ /* All of these values are in units of 50MHz */
dev_priv->rps.cur_freq = 0; dev_priv->rps.cur_freq = 0;
/* hw_max = RP0 until we check for overclocking */
dev_priv->rps.max_freq = hw_max = rp_state_cap & 0xff;
/* static values from HW: RP0 < RPe < RP1 < RPn (min_freq) */ /* static values from HW: RP0 < RPe < RP1 < RPn (min_freq) */
dev_priv->rps.rp1_freq = (rp_state_cap >> 8) & 0xff; dev_priv->rps.rp1_freq = (rp_state_cap >> 8) & 0xff;
dev_priv->rps.rp0_freq = (rp_state_cap >> 0) & 0xff; dev_priv->rps.rp0_freq = (rp_state_cap >> 0) & 0xff;
dev_priv->rps.efficient_freq = dev_priv->rps.rp1_freq; dev_priv->rps.min_freq = (rp_state_cap >> 16) & 0xff;
dev_priv->rps.min_freq = hw_min = (rp_state_cap >> 16) & 0xff; /* XXX: only BYT has a special efficient freq */
dev_priv->rps.efficient_freq = dev_priv->rps.rp1_freq;
/* hw_max = RP0 until we check for overclocking */
dev_priv->rps.max_freq = dev_priv->rps.rp0_freq;
/* Preserve min/max settings in case of re-init */ /* Preserve min/max settings in case of re-init */
if (dev_priv->rps.max_freq_softlimit == 0) if (dev_priv->rps.max_freq_softlimit == 0)
dev_priv->rps.max_freq_softlimit = hw_max; dev_priv->rps.max_freq_softlimit = dev_priv->rps.max_freq;
if (dev_priv->rps.min_freq_softlimit == 0) if (dev_priv->rps.min_freq_softlimit == 0)
dev_priv->rps.min_freq_softlimit = hw_min; dev_priv->rps.min_freq_softlimit = dev_priv->rps.min_freq;
/* disable the counters and set deterministic thresholds */ /* disable the counters and set deterministic thresholds */
I915_WRITE(GEN6_RC_CONTROL, 0); I915_WRITE(GEN6_RC_CONTROL, 0);
...@@ -3597,7 +3598,7 @@ static void valleyview_enable_rps(struct drm_device *dev) ...@@ -3597,7 +3598,7 @@ static void valleyview_enable_rps(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_ring_buffer *ring; struct intel_ring_buffer *ring;
u32 gtfifodbg, val, hw_max, hw_min, rc6_mode = 0; u32 gtfifodbg, val, rc6_mode = 0;
int i; int i;
WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock)); WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
...@@ -3657,27 +3658,28 @@ static void valleyview_enable_rps(struct drm_device *dev) ...@@ -3657,27 +3658,28 @@ static void valleyview_enable_rps(struct drm_device *dev)
vlv_gpu_freq(dev_priv, dev_priv->rps.cur_freq), vlv_gpu_freq(dev_priv, dev_priv->rps.cur_freq),
dev_priv->rps.cur_freq); dev_priv->rps.cur_freq);
dev_priv->rps.max_freq = hw_max = valleyview_rps_max_freq(dev_priv); dev_priv->rps.max_freq = valleyview_rps_max_freq(dev_priv);
dev_priv->rps.rp0_freq = dev_priv->rps.max_freq;
DRM_DEBUG_DRIVER("max GPU freq: %d MHz (%u)\n", DRM_DEBUG_DRIVER("max GPU freq: %d MHz (%u)\n",
vlv_gpu_freq(dev_priv, hw_max), vlv_gpu_freq(dev_priv, dev_priv->rps.max_freq),
hw_max); dev_priv->rps.max_freq);
dev_priv->rps.efficient_freq = valleyview_rps_rpe_freq(dev_priv); dev_priv->rps.efficient_freq = valleyview_rps_rpe_freq(dev_priv);
DRM_DEBUG_DRIVER("RPe GPU freq: %d MHz (%u)\n", DRM_DEBUG_DRIVER("RPe GPU freq: %d MHz (%u)\n",
vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq),
dev_priv->rps.efficient_freq); dev_priv->rps.efficient_freq);
hw_min = valleyview_rps_min_freq(dev_priv); dev_priv->rps.min_freq = valleyview_rps_min_freq(dev_priv);
DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n", DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n",
vlv_gpu_freq(dev_priv, hw_min), vlv_gpu_freq(dev_priv, dev_priv->rps.min_freq),
hw_min); dev_priv->rps.min_freq);
/* Preserve min/max settings in case of re-init */ /* Preserve min/max settings in case of re-init */
if (dev_priv->rps.max_freq_softlimit == 0) if (dev_priv->rps.max_freq_softlimit == 0)
dev_priv->rps.max_freq_softlimit = hw_max; dev_priv->rps.max_freq_softlimit = dev_priv->rps.max_freq;
if (dev_priv->rps.min_freq_softlimit == 0) if (dev_priv->rps.min_freq_softlimit == 0)
dev_priv->rps.min_freq_softlimit = hw_min; dev_priv->rps.min_freq_softlimit = dev_priv->rps.min_freq;
DRM_DEBUG_DRIVER("setting GPU freq to %d MHz (%u)\n", DRM_DEBUG_DRIVER("setting GPU freq to %d MHz (%u)\n",
vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment