Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm: Clear fd/handle callbacks in struct drm_driver

Clear all assignments of struct drm_driver's fd/handle callbacks to
drm_gem_prime_fd_to_handle() and drm_gem_prime_handle_to_fd(). These
functions are called by default. Add a TODO item to convert vmwgfx
to the defaults as well.

v2:
* remove TODO item (Zack)
* also update amdgpu's amdgpu_partition_driver

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Simon Ser <contact@emersion.fr>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Jeffrey Hugo <quic_jhugo@quicinc.com> # qaic
Link: https://patchwork.freedesktop.org/patch/msgid/20230620080252.16368-3-tzimmermann@suse.de

+10 -68
-2
drivers/accel/ivpu/ivpu_drv.c
··· 373 373 374 374 .open = ivpu_open, 375 375 .postclose = ivpu_postclose, 376 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 377 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 378 376 .gem_prime_import = ivpu_gem_prime_import, 379 377 380 378 .ioctls = ivpu_drm_ioctls,
-1
drivers/accel/qaic/qaic_drv.c
··· 165 165 166 166 .ioctls = qaic_drm_ioctls, 167 167 .num_ioctls = ARRAY_SIZE(qaic_drm_ioctls), 168 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 169 168 .gem_prime_import = qaic_gem_prime_import, 170 169 }; 171 170
-4
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
··· 2850 2850 .show_fdinfo = amdgpu_show_fdinfo, 2851 2851 #endif 2852 2852 2853 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 2854 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 2855 2853 .gem_prime_import = amdgpu_gem_prime_import, 2856 2854 2857 2855 .name = DRIVER_NAME, ··· 2874 2876 .fops = &amdgpu_driver_kms_fops, 2875 2877 .release = &amdgpu_driver_release_kms, 2876 2878 2877 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 2878 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 2879 2879 .gem_prime_import = amdgpu_gem_prime_import, 2880 2880 2881 2881 .name = DRIVER_NAME,
-2
drivers/gpu/drm/armada/armada_drv.c
··· 37 37 DEFINE_DRM_GEM_FOPS(armada_drm_fops); 38 38 39 39 static const struct drm_driver armada_drm_driver = { 40 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 41 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 42 40 .gem_prime_import = armada_gem_prime_import, 43 41 .dumb_create = armada_gem_dumb_create, 44 42 .major = 1,
+4 -9
drivers/gpu/drm/drm_prime.c
··· 51 51 * between applications, they can't be guessed like the globally unique GEM 52 52 * names. 53 53 * 54 - * Drivers that support the PRIME API implement the 55 - * &drm_driver.prime_handle_to_fd and &drm_driver.prime_fd_to_handle operations. 56 - * GEM based drivers must use drm_gem_prime_handle_to_fd() and 57 - * drm_gem_prime_fd_to_handle() to implement these. For GEM based drivers the 58 - * actual driver interfaces is provided through the &drm_gem_object_funcs.export 59 - * and &drm_driver.gem_prime_import hooks. 60 - * 61 - * &dma_buf_ops implementations for GEM drivers are all individually exported 62 - * for drivers which need to overwrite or reimplement some of them. 54 + * Drivers that support the PRIME API implement the drm_gem_object_funcs.export 55 + * and &drm_driver.gem_prime_import hooks. &dma_buf_ops implementations for 56 + * drivers are all individually exported for drivers which need to overwrite 57 + * or reimplement some of them. 63 58 * 64 59 * Reference Counting for GEM Drivers 65 60 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2
drivers/gpu/drm/etnaviv/etnaviv_drv.c
··· 481 481 .driver_features = DRIVER_GEM | DRIVER_RENDER, 482 482 .open = etnaviv_open, 483 483 .postclose = etnaviv_postclose, 484 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 485 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 486 484 .gem_prime_import_sg_table = etnaviv_gem_prime_import_sg_table, 487 485 #ifdef CONFIG_DEBUG_FS 488 486 .debugfs_init = etnaviv_debugfs_init,
-2
drivers/gpu/drm/exynos/exynos_drm_drv.c
··· 109 109 .open = exynos_drm_open, 110 110 .postclose = exynos_drm_postclose, 111 111 .dumb_create = exynos_drm_gem_dumb_create, 112 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 113 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 114 112 .gem_prime_import = exynos_drm_gem_prime_import, 115 113 .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, 116 114 .ioctls = exynos_ioctls,
-2
drivers/gpu/drm/i915/i915_driver.c
··· 1818 1818 .postclose = i915_driver_postclose, 1819 1819 .show_fdinfo = i915_drm_client_fdinfo, 1820 1820 1821 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 1822 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 1823 1821 .gem_prime_import = i915_gem_prime_import, 1824 1822 1825 1823 .dumb_create = i915_gem_dumb_create,
-2
drivers/gpu/drm/lima/lima_drv.c
··· 276 276 .patchlevel = 0, 277 277 278 278 .gem_create_object = lima_gem_create_object, 279 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 280 279 .gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table, 281 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 282 280 }; 283 281 284 282 struct lima_block_reader {
-2
drivers/gpu/drm/mediatek/mtk_drm_drv.c
··· 556 556 557 557 .dumb_create = mtk_drm_gem_dumb_create, 558 558 559 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 560 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 561 559 .gem_prime_import = mtk_drm_gem_prime_import, 562 560 .gem_prime_import_sg_table = mtk_gem_prime_import_sg_table, 563 561 .fops = &mtk_drm_fops,
-2
drivers/gpu/drm/msm/msm_drv.c
··· 1086 1086 .postclose = msm_postclose, 1087 1087 .dumb_create = msm_gem_dumb_create, 1088 1088 .dumb_map_offset = msm_gem_dumb_map_offset, 1089 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 1090 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 1091 1089 .gem_prime_import_sg_table = msm_gem_prime_import_sg_table, 1092 1090 #ifdef CONFIG_DEBUG_FS 1093 1091 .debugfs_init = msm_debugfs_init,
-2
drivers/gpu/drm/nouveau/nouveau_drm.c
··· 1240 1240 .num_ioctls = ARRAY_SIZE(nouveau_ioctls), 1241 1241 .fops = &nouveau_driver_fops, 1242 1242 1243 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 1244 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 1245 1243 .gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table, 1246 1244 1247 1245 .dumb_create = nouveau_display_dumb_create,
-2
drivers/gpu/drm/omapdrm/omap_drv.c
··· 655 655 #ifdef CONFIG_DEBUG_FS 656 656 .debugfs_init = omap_debugfs_init, 657 657 #endif 658 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 659 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 660 658 .gem_prime_import = omap_gem_prime_import, 661 659 .dumb_create = omap_gem_dumb_create, 662 660 .dumb_map_offset = omap_gem_dumb_map_offset,
-2
drivers/gpu/drm/panfrost/panfrost_drv.c
··· 544 544 .minor = 2, 545 545 546 546 .gem_create_object = panfrost_gem_create_object, 547 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 548 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 549 547 .gem_prime_import_sg_table = panfrost_gem_prime_import_sg_table, 550 548 }; 551 549
-2
drivers/gpu/drm/pl111/pl111_drv.c
··· 224 224 .minor = 0, 225 225 .patchlevel = 0, 226 226 .dumb_create = drm_gem_dma_dumb_create, 227 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 228 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 229 227 .gem_prime_import_sg_table = pl111_gem_import_sg_table, 230 228 231 229 #if defined(CONFIG_DEBUG_FS)
-2
drivers/gpu/drm/qxl/qxl_drv.c
··· 290 290 #if defined(CONFIG_DEBUG_FS) 291 291 .debugfs_init = qxl_debugfs_init, 292 292 #endif 293 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 294 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 295 293 .gem_prime_import_sg_table = qxl_gem_prime_import_sg_table, 296 294 .fops = &qxl_fops, 297 295 .ioctls = qxl_ioctls,
-2
drivers/gpu/drm/radeon/radeon_drv.c
··· 604 604 .dumb_map_offset = radeon_mode_dumb_mmap, 605 605 .fops = &radeon_driver_kms_fops, 606 606 607 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 608 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 609 607 .gem_prime_import_sg_table = radeon_gem_prime_import_sg_table, 610 608 611 609 .name = DRIVER_NAME,
-2
drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c
··· 605 605 static const struct drm_driver rcar_du_driver = { 606 606 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 607 607 .dumb_create = rcar_du_dumb_create, 608 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 609 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 610 608 .gem_prime_import_sg_table = rcar_du_gem_prime_import_sg_table, 611 609 .fops = &rcar_du_fops, 612 610 .name = "rcar-du",
-2
drivers/gpu/drm/rockchip/rockchip_drm_drv.c
··· 224 224 static const struct drm_driver rockchip_drm_driver = { 225 225 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, 226 226 .dumb_create = rockchip_gem_dumb_create, 227 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 228 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 229 227 .gem_prime_import_sg_table = rockchip_gem_prime_import_sg_table, 230 228 .fops = &rockchip_drm_driver_fops, 231 229 .name = DRIVER_NAME,
-2
drivers/gpu/drm/tegra/drm.c
··· 887 887 .debugfs_init = tegra_debugfs_init, 888 888 #endif 889 889 890 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 891 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 892 890 .gem_prime_import = tegra_gem_prime_import, 893 891 894 892 .dumb_create = tegra_bo_dumb_create,
-2
drivers/gpu/drm/v3d/v3d_drv.c
··· 171 171 #endif 172 172 173 173 .gem_create_object = v3d_create_object, 174 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 175 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 176 174 .gem_prime_import_sg_table = v3d_prime_import_sg_table, 177 175 178 176 .ioctls = v3d_drm_ioctls,
-2
drivers/gpu/drm/virtio/virtgpu_drv.c
··· 186 186 #if defined(CONFIG_DEBUG_FS) 187 187 .debugfs_init = virtio_gpu_debugfs_init, 188 188 #endif 189 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 190 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 191 189 .gem_prime_import = virtgpu_gem_prime_import, 192 190 .gem_prime_import_sg_table = virtgpu_gem_prime_import_sg_table, 193 191
-2
drivers/gpu/drm/xen/xen_drm_front.c
··· 474 474 static const struct drm_driver xen_drm_driver = { 475 475 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 476 476 .release = xen_drm_drv_release, 477 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 478 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 479 477 .gem_prime_import_sg_table = xen_drm_front_gem_import_sg_table, 480 478 .dumb_create = xen_drm_drv_dumb_create, 481 479 .fops = &xen_drm_dev_fops,
+2 -6
include/drm/drm_gem_dma_helper.h
··· 166 166 * DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. 167 167 */ 168 168 #define DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \ 169 - .dumb_create = (dumb_create_func), \ 170 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 171 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 169 + .dumb_create = (dumb_create_func), \ 172 170 .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table 173 171 174 172 /** ··· 201 203 * DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. 202 204 */ 203 205 #define DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \ 204 - .dumb_create = dumb_create_func, \ 205 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 206 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 206 + .dumb_create = (dumb_create_func), \ 207 207 .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table_vmap 208 208 209 209 /**
+1 -3
include/drm/drm_gem_shmem_helper.h
··· 278 278 * the &drm_driver structure. 279 279 */ 280 280 #define DRM_GEM_SHMEM_DRIVER_OPS \ 281 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 282 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 283 281 .gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table, \ 284 - .dumb_create = drm_gem_shmem_dumb_create 282 + .dumb_create = drm_gem_shmem_dumb_create 285 283 286 284 #endif /* __DRM_GEM_SHMEM_HELPER_H__ */
+3 -5
include/drm/drm_gem_vram_helper.h
··· 157 157 * &struct drm_driver with default functions. 158 158 */ 159 159 #define DRM_GEM_VRAM_DRIVER \ 160 - .debugfs_init = drm_vram_mm_debugfs_init, \ 161 - .dumb_create = drm_gem_vram_driver_dumb_create, \ 162 - .dumb_map_offset = drm_gem_ttm_dumb_map_offset, \ 163 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 164 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle 160 + .debugfs_init = drm_vram_mm_debugfs_init, \ 161 + .dumb_create = drm_gem_vram_driver_dumb_create, \ 162 + .dumb_map_offset = drm_gem_ttm_dumb_map_offset 165 163 166 164 /* 167 165 * VRAM memory manager