• John Harrison's avatar
    drm/i915: Merged the many do_execbuf() parameters into a structure · 5f19e2bf
    John Harrison authored
    The do_execbuf() function takes quite a few parameters. The actual set of
    parameters is going to change with the conversion to passing requests around.
    Further, it is due to grow massively with the arrival of the GPU scheduler.
    
    This patch simplifies the prototype by passing a parameter structure instead.
    Changing the parameter set in the future is then simply a matter of
    adding/removing items to the structure.
    
    Note that the structure does not contain absolutely everything that is passed
    in. This is because the intention is to use this structure more extensively
    later in this patch series and more especially in the GPU scheduler that is
    coming soon. The latter requires hanging on to the structure as the final
    hardware submission can be delayed until long after the execbuf IOCTL has
    returned to user land. Thus it is unsafe to put anything in the structure that
    is local to the IOCTL call itself - such as the 'args' parameter. All entries
    must be copies of data or pointers to structures that are reference counted in
    some way and guaranteed to exist for the duration of the batch buffer's life.
    
    v2: Rebased to newer tree and updated for changes to the command parser.
    Specifically, a code shuffle has required saving the batch start address in the
    params structure.
    
    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>
    5f19e2bf
i915_drv.h 103 KB