• John Harrison's avatar
    drm/i915: Update i915_gem_object_sync() to take a request structure · 91af127f
    John Harrison authored
    The plan is to pass requests around as the basic submission tracking structure
    rather than rings and contexts. This patch updates the i915_gem_object_sync()
    code path.
    
    v2: Much more complex patch to share a single request between the sync and the
    page flip. The _sync() function now supports lazy allocation of the request
    structure. That is, if one is passed in then that will be used. If one is not,
    then a request will be allocated and passed back out. Note that the _sync() code
    does not necessarily require a request. Thus one will only be created until
    certain situations. The reason the lazy allocation must be done within the
    _sync() code itself is because the decision to need one or not is not really
    something that code above can second guess (except in the case where one is
    definitely not required because no ring is passed in).
    
    The call chains above _sync() now support passing a request through which most
    callers passing in NULL and assuming that no request will be required (because
    they also pass in NULL for the ring and therefore can't be generating any ring
    code).
    
    The exeception is intel_crtc_page_flip() which now supports having a request
    returned from _sync(). If one is, then that request is shared by the page flip
    (if the page flip is of a type to need a request). If _sync() does not generate
    a request but the page flip does need one, then the page flip path will create
    its own request.
    
    v3: Updated comment description to be clearer about 'to_req' parameter (Tomas
    Elf review request). Rebased onto newer tree that significantly changed the
    synchronisation code.
    
    v4: Updated comments from review feedback (Tomas Elf)
    
    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>
    91af127f
i915_drv.h 103 KB