On Wed, Mar 15, 2017 at 05:43:04PM +0200, Mika Kuoppala wrote: > Set byt rc residency counters high level as chv does by > default. We lose some accuracy on byt but we can do the calculation > without extra hw read on both platforms, as now they behave > identically in this respect. > > v2: use ktime > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_irq.c | 9 ++------- > drivers/gpu/drm/i915/intel_pm.c | 9 +++------ > 2 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index f73d8db..7fb35a5 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -1100,11 +1100,6 @@ static u32 vlv_wa_c0_ei(struct drm_i915_private *dev_priv, u32 pm_iir) > if (prev->ktime) { > u64 time, c0; > u32 render, media; > - unsigned int mul; > - > - mul = 1000 * 100; /* scale to threshold% */ > - if (I915_READ(VLV_COUNTER_CONTROL) & VLV_COUNT_RANGE_HIGH) > - mul <<= 8; > > time = ktime_us_delta(now.ktime, prev->ktime); > time *= dev_priv->czclk_freq; > @@ -1116,8 +1111,8 @@ static u32 vlv_wa_c0_ei(struct drm_i915_private *dev_priv, u32 pm_iir) > */ > render = now.render_c0 - prev->render_c0; > media = now.media_c0 - prev->media_c0; > - c0 = max(render, media); > - c0 *= mul; > + c0 = max_t(u64, render, media) << 8; /* upper part of 40 bit */ Keep the comparison at u32, do the promotion afterwards, be kind to 32bit machines, i.e. c0 *= 1000 * 100 << 8; as before With that Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx