• Chris Wilson's avatar
    drm/i915: Remove use of the autoreported ringbuffer HEAD position · 5d031e5b
    Chris Wilson authored
    This is a revert of 6aa56062.
    
    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=45492Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Tested-by: default avatarEric Anholt <eric@anholt.net>
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    5d031e5b
intel_ringbuffer.c 38.6 KB