• Daniel Vetter's avatar
    drm/i915: vfuncs for gtt_clear_range/insert_entries · 7faf1ab2
    Daniel Vetter authored
    We have a few too many differences here, so finally take the prepared
    abstraction and run with it. A few smaller changes are required to get
    things into shape:
    
    - move i915_cache_level up since we need it in the gt funcs
    - split up i915_ggtt_clear_range and move the two functions down to
      where the relevant insert_entries functions are
    - adjustments to a few function parameter lists
    
    Now we have 2 functions which deal with the gen6+ global gtt
    (gen6_ggtt_ prefix) and 2 functions which deal with the legacy gtt
    code in the intel-gtt.c fake agp driver (i915_ggtt_ prefix).
    
    Init is still a bit a mess, but honestly I don't care about that.
    
    One thing I've thought about while deciding on the exact interfaces is
    a flag parameter for ->clear_range: We could use that to decide
    between writing invalid pte entries or scratch pte entries. In case we
    ever get around to fixing all our bugs which currently prevent us from
    filling the gtt with empty ptes for the truly unused ranges ...
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    [bwidawsk: Moved functions to the gtt struct]
    Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
    Reviewed-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    7faf1ab2
i915_drv.h 57.9 KB