• Noralf Trønnes's avatar
    drm/gem: Add drm_gem_object_funcs · b39b5394
    Noralf Trønnes authored
    This adds an optional function table on GEM objects.
    The main benefit is for drivers that support more than one type of
    memory (shmem,vram,cma) for their buffers depending on the hardware it
    runs on. With the callbacks attached to the GEM object itself, it is
    easier to have core helpers for the the various buffer types. The driver
    only has to make the decision about buffer type on GEM object creation
    and all other callbacks can be handled by the chosen helper.
    
    drm_driver->gem_prime_res_obj has not been added since there's a todo to
    put a reservation_object into drm_gem_object.
    
    v3: Add todo entry
    
    v2: Drop drm_gem_object_funcs->prime_mmap in favour of
    drm_gem_prime_mmap() (Daniel Vetter)
    
    v1:
    - drm_gem_object_funcs.map -> .prime_map let it only do PRIME mmap like
      the function it superseeds (Daniel Vetter)
    - Flip around the if ladders and make obj->funcs the first choice
      highlighting the fact that this the new default way of doing it
      (Daniel Vetter)
    Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Acked-by: default avatarChristian König <christian.koenig@amd.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181110145647.17580-4-noralf@tronnes.org
    b39b5394
drm_client.c 10.6 KB