aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2014-03-19 21:31:13 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-03-20 09:46:07 -0400
commit2a5913a8670a6925c04e397e0a8ebd72cb4b2d26 (patch)
tree711a401af311fe260bd3c83e2d78408456c4af8e
parent04da7e77e2cb8eadb84e12ecae3398e2a5b9ba70 (diff)
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: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_sysfs.c36
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c40
2 files changed, 33 insertions, 43 deletions
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
index 49554d9a6b71..9c57029f6f4b 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -313,7 +313,7 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev,
313 struct drm_minor *minor = dev_to_drm_minor(kdev); 313 struct drm_minor *minor = dev_to_drm_minor(kdev);
314 struct drm_device *dev = minor->dev; 314 struct drm_device *dev = minor->dev;
315 struct drm_i915_private *dev_priv = dev->dev_private; 315 struct drm_i915_private *dev_priv = dev->dev_private;
316 u32 val, hw_max, hw_min, non_oc_max; 316 u32 val;
317 ssize_t ret; 317 ssize_t ret;
318 318
319 ret = kstrtou32(buf, 0, &val); 319 ret = kstrtou32(buf, 0, &val);
@@ -324,26 +324,19 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev,
324 324
325 mutex_lock(&dev_priv->rps.hw_lock); 325 mutex_lock(&dev_priv->rps.hw_lock);
326 326
327 if (IS_VALLEYVIEW(dev_priv->dev)) { 327 if (IS_VALLEYVIEW(dev_priv->dev))
328 val = vlv_freq_opcode(dev_priv, val); 328 val = vlv_freq_opcode(dev_priv, val);
329 329 else
330 non_oc_max = hw_max = dev_priv->rps.max_freq;
331 hw_min = dev_priv->rps.min_freq;
332 } else {
333 val /= GT_FREQUENCY_MULTIPLIER; 330 val /= GT_FREQUENCY_MULTIPLIER;
334 331
335 hw_max = dev_priv->rps.max_freq; 332 if (val < dev_priv->rps.min_freq ||
336 non_oc_max = dev_priv->rps.rp0_freq; 333 val > dev_priv->rps.max_freq ||
337 hw_min = dev_priv->rps.min_freq;
338 }
339
340 if (val < hw_min || val > hw_max ||
341 val < dev_priv->rps.min_freq_softlimit) { 334 val < dev_priv->rps.min_freq_softlimit) {
342 mutex_unlock(&dev_priv->rps.hw_lock); 335 mutex_unlock(&dev_priv->rps.hw_lock);
343 return -EINVAL; 336 return -EINVAL;
344 } 337 }
345 338
346 if (val > non_oc_max) 339 if (val > dev_priv->rps.rp0_freq)
347 DRM_DEBUG("User requested overclocking to %d\n", 340 DRM_DEBUG("User requested overclocking to %d\n",
348 val * GT_FREQUENCY_MULTIPLIER); 341 val * GT_FREQUENCY_MULTIPLIER);
349 342
@@ -392,7 +385,7 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev,
392 struct drm_minor *minor = dev_to_drm_minor(kdev); 385 struct drm_minor *minor = dev_to_drm_minor(kdev);
393 struct drm_device *dev = minor->dev; 386 struct drm_device *dev = minor->dev;
394 struct drm_i915_private *dev_priv = dev->dev_private; 387 struct drm_i915_private *dev_priv = dev->dev_private;
395 u32 val, hw_max, hw_min; 388 u32 val;
396 ssize_t ret; 389 ssize_t ret;
397 390
398 ret = kstrtou32(buf, 0, &val); 391 ret = kstrtou32(buf, 0, &val);
@@ -403,19 +396,14 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev,
403 396
404 mutex_lock(&dev_priv->rps.hw_lock); 397 mutex_lock(&dev_priv->rps.hw_lock);
405 398
406 if (IS_VALLEYVIEW(dev)) { 399 if (IS_VALLEYVIEW(dev))
407 val = vlv_freq_opcode(dev_priv, val); 400 val = vlv_freq_opcode(dev_priv, val);
408 401 else
409 hw_max = dev_priv->rps.max_freq;
410 hw_min = dev_priv->rps.min_freq;
411 } else {
412 val /= GT_FREQUENCY_MULTIPLIER; 402 val /= GT_FREQUENCY_MULTIPLIER;
413 403
414 hw_max = dev_priv->rps.max_freq; 404 if (val < dev_priv->rps.min_freq ||
415 hw_min = dev_priv->rps.min_freq; 405 val > dev_priv->rps.max_freq ||
416 } 406 val > dev_priv->rps.max_freq_softlimit) {
417
418 if (val < hw_min || val > hw_max || val > dev_priv->rps.max_freq_softlimit) {
419 mutex_unlock(&dev_priv->rps.hw_lock); 407 mutex_unlock(&dev_priv->rps.hw_lock);
420 return -EINVAL; 408 return -EINVAL;
421 } 409 }
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3db7c40cc9ae..fd68f93671bb 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3324,7 +3324,7 @@ static void gen6_enable_rps(struct drm_device *dev)
3324{ 3324{
3325 struct drm_i915_private *dev_priv = dev->dev_private; 3325 struct drm_i915_private *dev_priv = dev->dev_private;
3326 struct intel_ring_buffer *ring; 3326 struct intel_ring_buffer *ring;
3327 u32 rp_state_cap, hw_max, hw_min; 3327 u32 rp_state_cap;
3328 u32 gt_perf_status; 3328 u32 gt_perf_status;
3329 u32 rc6vids, pcu_mbox = 0, rc6_mask = 0; 3329 u32 rc6vids, pcu_mbox = 0, rc6_mask = 0;
3330 u32 gtfifodbg; 3330 u32 gtfifodbg;
@@ -3353,21 +3353,22 @@ static void gen6_enable_rps(struct drm_device *dev)
3353 gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS); 3353 gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
3354 3354
3355 /* All of these values are in units of 50MHz */ 3355 /* All of these values are in units of 50MHz */
3356 dev_priv->rps.cur_freq = 0; 3356 dev_priv->rps.cur_freq = 0;
3357 /* hw_max = RP0 until we check for overclocking */
3358 dev_priv->rps.max_freq = hw_max = rp_state_cap & 0xff;
3359 /* static values from HW: RP0 < RPe < RP1 < RPn (min_freq) */ 3357 /* static values from HW: RP0 < RPe < RP1 < RPn (min_freq) */
3360 dev_priv->rps.rp1_freq = (rp_state_cap >> 8) & 0xff; 3358 dev_priv->rps.rp1_freq = (rp_state_cap >> 8) & 0xff;
3361 dev_priv->rps.rp0_freq = (rp_state_cap >> 0) & 0xff; 3359 dev_priv->rps.rp0_freq = (rp_state_cap >> 0) & 0xff;
3362 dev_priv->rps.efficient_freq = dev_priv->rps.rp1_freq; 3360 dev_priv->rps.min_freq = (rp_state_cap >> 16) & 0xff;
3363 dev_priv->rps.min_freq = hw_min = (rp_state_cap >> 16) & 0xff; 3361 /* XXX: only BYT has a special efficient freq */
3362 dev_priv->rps.efficient_freq = dev_priv->rps.rp1_freq;
3363 /* hw_max = RP0 until we check for overclocking */
3364 dev_priv->rps.max_freq = dev_priv->rps.rp0_freq;
3364 3365
3365 /* Preserve min/max settings in case of re-init */ 3366 /* Preserve min/max settings in case of re-init */
3366 if (dev_priv->rps.max_freq_softlimit == 0) 3367 if (dev_priv->rps.max_freq_softlimit == 0)
3367 dev_priv->rps.max_freq_softlimit = hw_max; 3368 dev_priv->rps.max_freq_softlimit = dev_priv->rps.max_freq;
3368 3369
3369 if (dev_priv->rps.min_freq_softlimit == 0) 3370 if (dev_priv->rps.min_freq_softlimit == 0)
3370 dev_priv->rps.min_freq_softlimit = hw_min; 3371 dev_priv->rps.min_freq_softlimit = dev_priv->rps.min_freq;
3371 3372
3372 /* disable the counters and set deterministic thresholds */ 3373 /* disable the counters and set deterministic thresholds */
3373 I915_WRITE(GEN6_RC_CONTROL, 0); 3374 I915_WRITE(GEN6_RC_CONTROL, 0);
@@ -3597,7 +3598,7 @@ static void valleyview_enable_rps(struct drm_device *dev)
3597{ 3598{
3598 struct drm_i915_private *dev_priv = dev->dev_private; 3599 struct drm_i915_private *dev_priv = dev->dev_private;
3599 struct intel_ring_buffer *ring; 3600 struct intel_ring_buffer *ring;
3600 u32 gtfifodbg, val, hw_max, hw_min, rc6_mode = 0; 3601 u32 gtfifodbg, val, rc6_mode = 0;
3601 int i; 3602 int i;
3602 3603
3603 WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock)); 3604 WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
@@ -3657,27 +3658,28 @@ static void valleyview_enable_rps(struct drm_device *dev)
3657 vlv_gpu_freq(dev_priv, dev_priv->rps.cur_freq), 3658 vlv_gpu_freq(dev_priv, dev_priv->rps.cur_freq),
3658 dev_priv->rps.cur_freq); 3659 dev_priv->rps.cur_freq);
3659 3660
3660 dev_priv->rps.max_freq = hw_max = valleyview_rps_max_freq(dev_priv); 3661 dev_priv->rps.max_freq = valleyview_rps_max_freq(dev_priv);
3662 dev_priv->rps.rp0_freq = dev_priv->rps.max_freq;
3661 DRM_DEBUG_DRIVER("max GPU freq: %d MHz (%u)\n", 3663 DRM_DEBUG_DRIVER("max GPU freq: %d MHz (%u)\n",
3662 vlv_gpu_freq(dev_priv, hw_max), 3664 vlv_gpu_freq(dev_priv, dev_priv->rps.max_freq),
3663 hw_max); 3665 dev_priv->rps.max_freq);
3664 3666
3665 dev_priv->rps.efficient_freq = valleyview_rps_rpe_freq(dev_priv); 3667 dev_priv->rps.efficient_freq = valleyview_rps_rpe_freq(dev_priv);
3666 DRM_DEBUG_DRIVER("RPe GPU freq: %d MHz (%u)\n", 3668 DRM_DEBUG_DRIVER("RPe GPU freq: %d MHz (%u)\n",
3667 vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), 3669 vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq),
3668 dev_priv->rps.efficient_freq); 3670 dev_priv->rps.efficient_freq);
3669 3671
3670 hw_min = valleyview_rps_min_freq(dev_priv); 3672 dev_priv->rps.min_freq = valleyview_rps_min_freq(dev_priv);
3671 DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n", 3673 DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n",
3672 vlv_gpu_freq(dev_priv, hw_min), 3674 vlv_gpu_freq(dev_priv, dev_priv->rps.min_freq),
3673 hw_min); 3675 dev_priv->rps.min_freq);
3674 3676
3675 /* Preserve min/max settings in case of re-init */ 3677 /* Preserve min/max settings in case of re-init */
3676 if (dev_priv->rps.max_freq_softlimit == 0) 3678 if (dev_priv->rps.max_freq_softlimit == 0)
3677 dev_priv->rps.max_freq_softlimit = hw_max; 3679 dev_priv->rps.max_freq_softlimit = dev_priv->rps.max_freq;
3678 3680
3679 if (dev_priv->rps.min_freq_softlimit == 0) 3681 if (dev_priv->rps.min_freq_softlimit == 0)
3680 dev_priv->rps.min_freq_softlimit = hw_min; 3682 dev_priv->rps.min_freq_softlimit = dev_priv->rps.min_freq;
3681 3683
3682 DRM_DEBUG_DRIVER("setting GPU freq to %d MHz (%u)\n", 3684 DRM_DEBUG_DRIVER("setting GPU freq to %d MHz (%u)\n",
3683 vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq), 3685 vlv_gpu_freq(dev_priv, dev_priv->rps.efficient_freq),