[Intel-gfx] [PATCH v3 1/2] drm/i915/rps: Add frequency translation helpers
Chris Wilson
chris at chris-wilson.co.uk
Fri Dec 13 12:48:11 UTC 2019
Quoting Andi Shyti (2019-12-13 12:45:48)
> From: Andi Shyti <andi.shyti at intel.com>
>
> Add two helpers that for reading the actual GT's frequency. The
> two helpers are:
>
> - intel_rps_read_cagf: reads the frequency and returns it not
> normalized
>
> - intel_rps_read_actual_frequency: provides the frequency in Hz.
>
> Use the above helpers in sysfs and debugfs.
>
> Signed-off-by: Andi Shyti <andi.shyti at intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_rps.c | 22 ++++++++++++++++++++++
> drivers/gpu/drm/i915/gt/intel_rps.h | 2 ++
> drivers/gpu/drm/i915/i915_debugfs.c | 21 +++++----------------
> drivers/gpu/drm/i915/i915_sysfs.c | 14 ++------------
> 4 files changed, 31 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index 106c9fce9d6c..05ec4bcbd6ef 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -1682,6 +1682,28 @@ u32 intel_get_cagf(struct intel_rps *rps, u32 rpstat)
> return cagf;
> }
>
> +u32 intel_rps_read_cagf(struct intel_rps *rps)
> +{
> + struct drm_i915_private *i915 = rps_to_i915(rps);
> + u32 freq;
> +
> + if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) {
> + vlv_punit_get(i915);
> + freq = vlv_punit_read(i915, PUNIT_REG_GPU_FREQ_STS);
> + vlv_punit_put(i915);
> +
> + return (freq >> 8) & 0xff;
> + }
> +
> + return intel_get_cagf(rps, intel_uncore_read(rps_to_gt(rps)->uncore,
> + GEN6_RPSTAT1));
> +}
> +
> +u32 intel_rps_read_actual_frequency(struct intel_rps *rps)
> +{
I'd go one step further and put the wakeref in here as well?
(Grabbing a wakeref we already have isn't much of a cost, and this is
debug so not critical.)
> + return intel_gpu_freq(rps, intel_rps_read_cagf(rps));
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
More information about the Intel-gfx
mailing list