diff options
author | Deepak S <deepak.s@linux.intel.com> | 2014-07-10 03:46:22 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-07-11 12:13:38 -0400 |
commit | 74c4f62bcdbb0e2ee115197eafd4edc05bbcf55c (patch) | |
tree | b5bb25fbd3d43ac0979cf990cd37332885eaa014 | |
parent | f8f2b001a1247b54ece090c1c86193b1f3f997fe (diff) |
drm/i915: Add RP0/RP1/RPn render P state thresholds in VLV sysfs
This is useful for userspace utilities to verify and micromanaging the
increase/decrease frequncy.
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/i915_sysfs.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c index 86ce39aad0ff..b15c8cee103b 100644 --- a/drivers/gpu/drm/i915/i915_sysfs.c +++ b/drivers/gpu/drm/i915/i915_sysfs.c | |||
@@ -461,11 +461,20 @@ static ssize_t gt_rp_mhz_show(struct device *kdev, struct device_attribute *attr | |||
461 | mutex_unlock(&dev->struct_mutex); | 461 | mutex_unlock(&dev->struct_mutex); |
462 | 462 | ||
463 | if (attr == &dev_attr_gt_RP0_freq_mhz) { | 463 | if (attr == &dev_attr_gt_RP0_freq_mhz) { |
464 | val = ((rp_state_cap & 0x0000ff) >> 0) * GT_FREQUENCY_MULTIPLIER; | 464 | if (IS_VALLEYVIEW(dev)) |
465 | val = vlv_gpu_freq(dev_priv, dev_priv->rps.rp0_freq); | ||
466 | else | ||
467 | val = ((rp_state_cap & 0x0000ff) >> 0) * GT_FREQUENCY_MULTIPLIER; | ||
465 | } else if (attr == &dev_attr_gt_RP1_freq_mhz) { | 468 | } else if (attr == &dev_attr_gt_RP1_freq_mhz) { |
466 | val = ((rp_state_cap & 0x00ff00) >> 8) * GT_FREQUENCY_MULTIPLIER; | 469 | if (IS_VALLEYVIEW(dev)) |
470 | val = vlv_gpu_freq(dev_priv, dev_priv->rps.rp1_freq); | ||
471 | else | ||
472 | val = ((rp_state_cap & 0x00ff00) >> 8) * GT_FREQUENCY_MULTIPLIER; | ||
467 | } else if (attr == &dev_attr_gt_RPn_freq_mhz) { | 473 | } else if (attr == &dev_attr_gt_RPn_freq_mhz) { |
468 | val = ((rp_state_cap & 0xff0000) >> 16) * GT_FREQUENCY_MULTIPLIER; | 474 | if (IS_VALLEYVIEW(dev)) |
475 | val = vlv_gpu_freq(dev_priv, dev_priv->rps.min_freq); | ||
476 | else | ||
477 | val = ((rp_state_cap & 0xff0000) >> 16) * GT_FREQUENCY_MULTIPLIER; | ||
469 | } else { | 478 | } else { |
470 | BUG(); | 479 | BUG(); |
471 | } | 480 | } |
@@ -486,6 +495,9 @@ static const struct attribute *vlv_attrs[] = { | |||
486 | &dev_attr_gt_cur_freq_mhz.attr, | 495 | &dev_attr_gt_cur_freq_mhz.attr, |
487 | &dev_attr_gt_max_freq_mhz.attr, | 496 | &dev_attr_gt_max_freq_mhz.attr, |
488 | &dev_attr_gt_min_freq_mhz.attr, | 497 | &dev_attr_gt_min_freq_mhz.attr, |
498 | &dev_attr_gt_RP0_freq_mhz.attr, | ||
499 | &dev_attr_gt_RP1_freq_mhz.attr, | ||
500 | &dev_attr_gt_RPn_freq_mhz.attr, | ||
489 | &dev_attr_vlv_rpe_freq_mhz.attr, | 501 | &dev_attr_vlv_rpe_freq_mhz.attr, |
490 | NULL, | 502 | NULL, |
491 | }; | 503 | }; |