• Gerd Hoffmann's avatar
    drm: add mmap() to drm_gem_object_funcs · c40069cb
    Gerd Hoffmann authored
    drm_gem_object_funcs->vm_ops alone can't handle everything which needs
    to be done for mmap(), tweaking vm_flags for example.  So add a new
    mmap() callback to drm_gem_object_funcs where this code can go to.
    
    Note that the vm_ops field is not used in case the mmap callback is
    present, it is expected that the callback sets vma->vm_ops instead.
    
    Also setting vm_flags and vm_page_prot is the job of the new callback.
    so drivers have more control over these flags.
    
    drm_gem_mmap_obj() will use the new callback for object specific mmap
    setup.  With this in place the need for driver-speific fops->mmap
    callbacks goes away, drm_gem_mmap can be hooked instead.
    
    drm_gem_prime_mmap() will use the new callback too to just mmap gem
    objects directly instead of jumping though loops to make
    drm_gem_object_lookup() and fops->mmap work.
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/20191016115203.20095-2-kraxel@redhat.com
    c40069cb
drm_gem.h 12.4 KB