drm/i915: Stop using RP_DOWN_EI on Baytrail
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 9 Mar 2017 21:12:30 +0000 (21:12 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Mar 2017 14:28:39 +0000 (14:28 +0000)
commite0e8c7cb6eb68e9256de2d8cbeb481d3701c05ac
tree8f66b1f4c6b056f0268b2e37105f26c935966494
parent8eadc19b380d5650e9d9c58e8ecc28e9f2b4a371
drm/i915: Stop using RP_DOWN_EI on Baytrail

On Baytrail, we manually calculate busyness over the evaluation interval
to avoid issues with miscaluations with RC6 enabled. However, it turns
out that the DOWN_EI interrupt generator is completely bust - it
operates in two modes, continuous or never. Neither of which are
conducive to good behaviour. Stop unmask the DOWN_EI interrupt and just
compute everything from the UP_EI which does seem to correspond to the
desired interval.

v2: Fixup gen6_rps_pm_mask() as well
v3: Inline vlv_c0_above() to combine the now identical elapsed
calculation for up/down and simplify the threshold testing

Fixes: 43cf3bf084ba ("drm/i915: Improved w/a for rps on Baytrail")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.1+
Link: http://patchwork.freedesktop.org/patch/msgid/20170309211232.28878-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_pm.c