• John Harrison's avatar
    drm/i915: Update queue_flip() to take a request structure · 6258fbe2
    John Harrison authored
    Updated the display page flip code to do explicit request creation and
    submission rather than relying on the OLR and just hoping that the request
    actually gets submitted at some random point.
    
    The sequence is now to create a request, queue the work to the ring, assign the
    known request to the flip queue work item then actually submit the work and post
    the request.
    
    Note that every single flip function used to finish with
    '__intel_ring_advance(ring);'. However, immediately after they return there is
    now an add request call which will do the advance anyway. Thus the many
    duplicate advance calls have been removed.
    
    v2: Updated commit message with comment about advance removal.
    
    v3: The request can now be allocated by the _sync() code earlier on. Thus the
    page flip path does not necessarily need to allocate a new request, it may be
    able to re-use one.
    
    For: VIZ-5115
    Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: default avatarTomas Elf <tomas.elf@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    6258fbe2
intel_ringbuffer.c 80.1 KB