• Daniel Vetter's avatar
    drm/i915: clear fencing tracking state when retiring requests · 15a13bbd
    Daniel Vetter authored
    This fixes a resume regression introduced in
    
    commit 7dd49065
    
    
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Wed Mar 21 10:48:18 2012 +0000
    
        drm/i915: Mark untiled BLT commands as fenced on gen2/3
    
    which fixed fencing tracking for untiled blt commands.
    
    A side effect of that patch was that now also untiled objects have a
    non-zero obj->last_fenced_seqno to track when a fence can be set up
    after a pipelined tiling change. Unfortunately this was only cleared
    by the fence setup and teardown code, resulting in tons of untiled but
    inactive objects with non-zero last_fenced_seqno.
    
    Now after resume we completely reset the seqno tracking, both on the
    driver side (by setting dev_priv->next_seqno = 1) and on the hw side
    (by allocating a new hws page, which contains the seqnos). Hilarity
    and indefinite waits ensued from the stale seqnos in
    obj->last_fenced_seqno from before the suspend.
    
    The fix is to properly clear the fencing tracking state like we
    already do for the normal gpu rendering while moving objects off the
    active list.
    
    Reported-and-tested-by: default avatar"Rafael J. Wysocki" <rjw@sisk.pl>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    15a13bbd