Replace all remaining implementations of struct drm_driver.gem_prime_mmap with use drm_gem_prime_mmap(). For each affected driver, put the mmap code into struct drm_gem_object_funcs.mmap. With the latter change in place, create struct file_operations via DEFINE_DRM_GEM_FOPS(). As next steps, remaining drivers can be converted to use drm_gem_prime_mmap() and drm_gem_mmap() (e.g., Tegra). The default mmap code in drm_gem_prime_mmap() can be pushed into affected drivers or a helper function. The gem_prime_mmap hook can probably be removed at some point. Testing is welcome. I don't have all the necessary hardware. Thomas Zimmermann (9): drm/etnaviv: Implement mmap as GEM object function drm/exynox: Implement mmap as GEM object function drm/mediatek: Implement mmap as GEM object function drm/msm: Implement mmap as GEM object function drm/qxl: Remove empty qxl_gem_prime_mmap() drm/vgem: Implement mmap as GEM object function drm/xen: Implement mmap as GEM object function drm/rockchip: Implement mmap as GEM object function drm: Update documentation and TODO of gem_prime_mmap hook Documentation/gpu/todo.rst | 11 -- drivers/gpu/drm/etnaviv/etnaviv_drv.c | 14 +-- drivers/gpu/drm/etnaviv/etnaviv_drv.h | 3 - drivers/gpu/drm/etnaviv/etnaviv_gem.c | 18 +-- drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 13 --- drivers/gpu/drm/exynos/exynos_drm_drv.c | 13 +-- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 20 +--- drivers/gpu/drm/exynos/exynos_drm_gem.c | 43 ++----- drivers/gpu/drm/exynos/exynos_drm_gem.h | 5 - drivers/gpu/drm/mediatek/mtk_drm_drv.c | 13 +-- drivers/gpu/drm/mediatek/mtk_drm_gem.c | 44 ++----- drivers/gpu/drm/mediatek/mtk_drm_gem.h | 3 - drivers/gpu/drm/msm/msm_drv.c | 14 +-- drivers/gpu/drm/msm/msm_drv.h | 1 - drivers/gpu/drm/msm/msm_fbdev.c | 10 +- drivers/gpu/drm/msm/msm_gem.c | 67 +++++------ drivers/gpu/drm/msm/msm_gem.h | 3 - drivers/gpu/drm/msm/msm_gem_prime.c | 11 -- drivers/gpu/drm/qxl/qxl_drv.c | 1 - drivers/gpu/drm/qxl/qxl_drv.h | 2 - drivers/gpu/drm/qxl/qxl_prime.c | 6 - drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 13 +-- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 44 ++----- drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 7 -- drivers/gpu/drm/vgem/vgem_drv.c | 46 +------- drivers/gpu/drm/xen/xen_drm_front.c | 16 +-- drivers/gpu/drm/xen/xen_drm_front_gem.c | 108 +++++++----------- drivers/gpu/drm/xen/xen_drm_front_gem.h | 7 -- include/drm/drm_drv.h | 11 +- 30 files changed, 136 insertions(+), 434 deletions(-) base-commit: 70e4d80795934312a3853a4f4f49445ce6db1271 prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 -- 2.31.1