drm/i915: Stop using RP_DOWN_EI on Baytrail
authorChris Wilson <[email protected]>
Thu, 9 Mar 2017 21:12:30 +0000 (21:12 +0000)
committerChris Wilson <[email protected]>
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 <[email protected]>
Cc: Mika Kuoppala <[email protected]>
Cc: <[email protected]> # v4.1+
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
Reviewed-by: Mika Kuoppala <[email protected]>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_pm.c