diff mbox

[v2] drm/i915/bxt: fix RC6 residency time calculation

Message ID 1443533326-19633-1-git-send-email-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Imre Deak Sept. 29, 2015, 1:28 p.m. UTC
The RC6 residency time unit is 833.33ns on BXT according to the
specification, so update the calculation accordingly. Use the same way
as CHV/VLV to divide by the corresponding frequency, as I think this is
the more natural unit for what the HW does internally.

v2:
- add missing IS_BROXTON check (Ville)

Testcase: igt/pm_rc6_residency
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/i915_sysfs.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Ville Syrjälä Sept. 29, 2015, 7:03 p.m. UTC | #1
On Tue, Sep 29, 2015 at 04:28:46PM +0300, Imre Deak wrote:
> The RC6 residency time unit is 833.33ns on BXT according to the
> specification, so update the calculation accordingly. Use the same way
> as CHV/VLV to divide by the corresponding frequency, as I think this is
> the more natural unit for what the HW does internally.
> 
> v2:
> - add missing IS_BROXTON check (Ville)
> 
> Testcase: igt/pm_rc6_residency
> Signed-off-by: Imre Deak <imre.deak@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_sysfs.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
> index 74086eb..50ce9ce 100644
> --- a/drivers/gpu/drm/i915/i915_sysfs.c
> +++ b/drivers/gpu/drm/i915/i915_sysfs.c
> @@ -54,6 +54,9 @@ static u32 calc_residency(struct drm_device *dev, const u32 reg)
>  
>  		if (I915_READ(VLV_COUNTER_CONTROL) & VLV_COUNT_RANGE_HIGH)
>  			units <<= 8;
> +	} else if (IS_BROXTON(dev)) {
> +		units = 1;
> +		div = 1200;		/* 833.33ns */
>  	}
>  
>  	raw_time = I915_READ(reg) * units;
> -- 
> 2.1.4
Daniel Vetter Sept. 30, 2015, 12:26 p.m. UTC | #2
On Tue, Sep 29, 2015 at 10:03:43PM +0300, Ville Syrjälä wrote:
> On Tue, Sep 29, 2015 at 04:28:46PM +0300, Imre Deak wrote:
> > The RC6 residency time unit is 833.33ns on BXT according to the
> > specification, so update the calculation accordingly. Use the same way
> > as CHV/VLV to divide by the corresponding frequency, as I think this is
> > the more natural unit for what the HW does internally.
> > 
> > v2:
> > - add missing IS_BROXTON check (Ville)
> > 
> > Testcase: igt/pm_rc6_residency
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Queued for -next, thanks for the patch.
-Daniel

> 
> > ---
> >  drivers/gpu/drm/i915/i915_sysfs.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
> > index 74086eb..50ce9ce 100644
> > --- a/drivers/gpu/drm/i915/i915_sysfs.c
> > +++ b/drivers/gpu/drm/i915/i915_sysfs.c
> > @@ -54,6 +54,9 @@ static u32 calc_residency(struct drm_device *dev, const u32 reg)
> >  
> >  		if (I915_READ(VLV_COUNTER_CONTROL) & VLV_COUNT_RANGE_HIGH)
> >  			units <<= 8;
> > +	} else if (IS_BROXTON(dev)) {
> > +		units = 1;
> > +		div = 1200;		/* 833.33ns */
> >  	}
> >  
> >  	raw_time = I915_READ(reg) * units;
> > -- 
> > 2.1.4
> 
> -- 
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
index 74086eb..50ce9ce 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -54,6 +54,9 @@  static u32 calc_residency(struct drm_device *dev, const u32 reg)
 
 		if (I915_READ(VLV_COUNTER_CONTROL) & VLV_COUNT_RANGE_HIGH)
 			units <<= 8;
+	} else if (IS_BROXTON(dev)) {
+		units = 1;
+		div = 1200;		/* 833.33ns */
 	}
 
 	raw_time = I915_READ(reg) * units;