drm/i915: Remove use of the autoreported ringbuffer HEAD position
This is a revert of
6aa56062eaba67adfb247cded244fd877329588d.
This was originally introduced to workaround reads of the ringbuffer
registers returning 0 on SandyBridge causing hangs due to ringbuffer
overflow. The root cause here was reads through the GT powerwell require
the forcewake dance, something we only learnt of later. Now it appears
that reading the reported head position from the HWS is returning
garbage, leading once again to hangs.
For example, on q35 the autoreported head reports:
[ 217.975608] head now
00010000, actual
00010000
[ 436.725613] head now
00200000, actual
00200000
[ 462.956033] head now
00210000, actual
00210010
[ 485.501409] head now
00400000, actual
00400020
[ 508.064280] head now
00410000, actual
00410000
[ 530.576078] head now
00600000, actual
00600020
[ 553.273489] head now
00610000, actual
00610018
which appears reasonably sane. In contrast, if we look at snb:
[ 141.970680] head now
00e10000, actual
00008238
[ 141.974062] head now
02734000, actual
000083c8
[ 141.974425] head now
00e10000, actual
00008488
[ 141.980374] head now
032b5000, actual
000088b8
[ 141.980885] head now
03271000, actual
00008950
[ 142.040628] head now
02101000, actual
00008b40
[ 142.180173] head now
02734000, actual
00009050
[ 142.181090] head now
00000000, actual
00000ae0
[ 142.183737] head now
02734000, actual
00009050
In addition, the automatic reporting of the head position is scheduled
to be defeatured in the future. It has no more utility, remove it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45492
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
(cherry picked from commit
5d031e5b633d910f35e6e0abce94d9d842390006)
Signed-off-by: Timo Aaltonen <timo.aaltonen@canonical.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>