• Daniel Vetter's avatar
    drm/vgem: use shmem helpers · 45d9c8dd
    Daniel Vetter authored
    Aside from deleting lots of code the real motivation here is to switch
    the mmap over to VM_PFNMAP, to be more consistent with what real gpu
    drivers do. They're all VM_PFNMAP, which means get_user_pages doesn't
    work, and even if you try and there's a struct page behind that,
    touching it and mucking around with its refcount can upset drivers
    real bad.
    
    v2: Review from Thomas:
    - sort #include
    - drop more dead code that I didn't spot somehow
    
    v3: select DRM_GEM_SHMEM_HELPER to make it build (intel-gfx-ci)
    
    v4: I got tricked by 0cf2ef46 ("drm/shmem-helper: Use cached
    mappings by default"), and we need WC in vgem because vgem doesn't
    have explicit begin/end cpu access ioctls.
    
    Also add a comment why exactly vgem has to use wc.
    
    v5: Don't set obj->base.funcs, it will default to drm_gem_shmem_funcs
    (Thomas)
    
    v6: vgem also needs an MMU for remapping
    
    v7: I absolutely butchered the rebases over the vgem mmap change and
    revert and broke the patch. Actually go back to v6 from before the
    vgem mmap changes.
    
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Sumit Semwal <sumit.semwal@linaro.org>
    Cc: "Christian König" <christian.koenig@amd.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Cc: Melissa Wen <melissa.srw@gmail.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210812131412.2487363-4-daniel.vetter@ffwll.ch
    45d9c8dd
Kconfig 13 KB