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

drm/gem: create drm_gem_dumb_destroy

All the gem based kms drivers really want the same function to
destroy a dumb framebuffer backing storage object.

So give it to them and roll it out in all drivers.

This still leaves the option open for kms drivers which don't use GEM
for backing storage, but it does decently simplify matters for gem
drivers.

Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Cc: Ben Skeggs <skeggsb@gmail.com>
Reviwed-by: Rob Clark <robdclark@gmail.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by

Daniel Vetter and committed by
Dave Airlie
43387b37 86e81f0e

+33 -186
+1 -1
drivers/gpu/drm/ast/ast_drv.c
··· 216 216 .gem_free_object = ast_gem_free_object, 217 217 .dumb_create = ast_dumb_create, 218 218 .dumb_map_offset = ast_dumb_mmap_offset, 219 - .dumb_destroy = ast_dumb_destroy, 219 + .dumb_destroy = drm_gem_dumb_destroy, 220 220 221 221 }; 222 222
-3
drivers/gpu/drm/ast/ast_drv.h
··· 322 322 extern int ast_dumb_create(struct drm_file *file, 323 323 struct drm_device *dev, 324 324 struct drm_mode_create_dumb *args); 325 - extern int ast_dumb_destroy(struct drm_file *file, 326 - struct drm_device *dev, 327 - uint32_t handle); 328 325 329 326 extern int ast_gem_init_object(struct drm_gem_object *obj); 330 327 extern void ast_gem_free_object(struct drm_gem_object *obj);
-7
drivers/gpu/drm/ast/ast_main.c
··· 449 449 return 0; 450 450 } 451 451 452 - int ast_dumb_destroy(struct drm_file *file, 453 - struct drm_device *dev, 454 - uint32_t handle) 455 - { 456 - return drm_gem_handle_delete(file, handle); 457 - } 458 - 459 452 int ast_gem_init_object(struct drm_gem_object *obj) 460 453 { 461 454 BUG();
+1 -1
drivers/gpu/drm/cirrus/cirrus_drv.c
··· 102 102 .gem_free_object = cirrus_gem_free_object, 103 103 .dumb_create = cirrus_dumb_create, 104 104 .dumb_map_offset = cirrus_dumb_mmap_offset, 105 - .dumb_destroy = cirrus_dumb_destroy, 105 + .dumb_destroy = drm_gem_dumb_destroy, 106 106 }; 107 107 108 108 static struct pci_driver cirrus_pci_driver = {
-3
drivers/gpu/drm/cirrus/cirrus_drv.h
··· 203 203 int cirrus_dumb_create(struct drm_file *file, 204 204 struct drm_device *dev, 205 205 struct drm_mode_create_dumb *args); 206 - int cirrus_dumb_destroy(struct drm_file *file, 207 - struct drm_device *dev, 208 - uint32_t handle); 209 206 210 207 int cirrus_framebuffer_init(struct drm_device *dev, 211 208 struct cirrus_framebuffer *gfb,
-7
drivers/gpu/drm/cirrus/cirrus_main.c
··· 255 255 return 0; 256 256 } 257 257 258 - int cirrus_dumb_destroy(struct drm_file *file, 259 - struct drm_device *dev, 260 - uint32_t handle) 261 - { 262 - return drm_gem_handle_delete(file, handle); 263 - } 264 - 265 258 int cirrus_gem_init_object(struct drm_gem_object *obj) 266 259 { 267 260 BUG();
+14
drivers/gpu/drm/drm_gem.c
··· 244 244 EXPORT_SYMBOL(drm_gem_handle_delete); 245 245 246 246 /** 247 + * drm_gem_dumb_destroy - dumb fb callback helper for gem based drivers 248 + * 249 + * This implements the ->dumb_destroy kms driver callback for drivers which use 250 + * gem to manage their backing storage. 251 + */ 252 + int drm_gem_dumb_destroy(struct drm_file *file, 253 + struct drm_device *dev, 254 + uint32_t handle) 255 + { 256 + return drm_gem_handle_delete(file, handle); 257 + } 258 + EXPORT_SYMBOL(drm_gem_dumb_destroy); 259 + 260 + /** 247 261 * Create a handle for this object. This adds a handle reference 248 262 * to the object, which includes a regular reference count. Callers 249 263 * will likely want to dereference the object afterwards.
-10
drivers/gpu/drm/drm_gem_cma_helper.c
··· 281 281 } 282 282 EXPORT_SYMBOL_GPL(drm_gem_cma_mmap); 283 283 284 - /* 285 - * drm_gem_cma_dumb_destroy - (struct drm_driver)->dumb_destroy callback function 286 - */ 287 - int drm_gem_cma_dumb_destroy(struct drm_file *file_priv, 288 - struct drm_device *drm, unsigned int handle) 289 - { 290 - return drm_gem_handle_delete(file_priv, handle); 291 - } 292 - EXPORT_SYMBOL_GPL(drm_gem_cma_dumb_destroy); 293 - 294 284 #ifdef CONFIG_DEBUG_FS 295 285 void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj, struct seq_file *m) 296 286 {
+1 -1
drivers/gpu/drm/exynos/exynos_drm_drv.c
··· 271 271 .gem_vm_ops = &exynos_drm_gem_vm_ops, 272 272 .dumb_create = exynos_drm_gem_dumb_create, 273 273 .dumb_map_offset = exynos_drm_gem_dumb_map_offset, 274 - .dumb_destroy = exynos_drm_gem_dumb_destroy, 274 + .dumb_destroy = drm_gem_dumb_destroy, 275 275 .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 276 276 .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 277 277 .gem_prime_export = exynos_dmabuf_prime_export,
-20
drivers/gpu/drm/exynos/exynos_drm_gem.c
··· 717 717 return ret; 718 718 } 719 719 720 - int exynos_drm_gem_dumb_destroy(struct drm_file *file_priv, 721 - struct drm_device *dev, 722 - unsigned int handle) 723 - { 724 - int ret; 725 - 726 - /* 727 - * obj->refcount and obj->handle_count are decreased and 728 - * if both them are 0 then exynos_drm_gem_free_object() 729 - * would be called by callback to release resources. 730 - */ 731 - ret = drm_gem_handle_delete(file_priv, handle); 732 - if (ret < 0) { 733 - DRM_ERROR("failed to delete drm_gem_handle.\n"); 734 - return ret; 735 - } 736 - 737 - return 0; 738 - } 739 - 740 720 int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 741 721 { 742 722 struct drm_gem_object *obj = vma->vm_private_data;
-9
drivers/gpu/drm/exynos/exynos_drm_gem.h
··· 151 151 struct drm_device *dev, uint32_t handle, 152 152 uint64_t *offset); 153 153 154 - /* 155 - * destroy memory region allocated. 156 - * - a gem handle and physical memory region pointed by a gem object 157 - * would be released by drm_gem_handle_delete(). 158 - */ 159 - int exynos_drm_gem_dumb_destroy(struct drm_file *file_priv, 160 - struct drm_device *dev, 161 - unsigned int handle); 162 - 163 154 /* page fault handler and mmap fault address(virtual) to physical memory. */ 164 155 int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); 165 156
-17
drivers/gpu/drm/gma500/gem.c
··· 162 162 } 163 163 164 164 /** 165 - * psb_gem_dumb_destroy - destroy a dumb buffer 166 - * @file: client file 167 - * @dev: our DRM device 168 - * @handle: the object handle 169 - * 170 - * Destroy a handle that was created via psb_gem_dumb_create, at least 171 - * we hope it was created that way. i915 seems to assume the caller 172 - * does the checking but that might be worth review ! FIXME 173 - */ 174 - int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, 175 - uint32_t handle) 176 - { 177 - /* No special work needed, drop the reference and see what falls out */ 178 - return drm_gem_handle_delete(file, handle); 179 - } 180 - 181 - /** 182 165 * psb_gem_fault - pagefault handler for GEM objects 183 166 * @vma: the VMA of the GEM object 184 167 * @vmf: fault detail
+1 -1
drivers/gpu/drm/gma500/psb_drv.c
··· 652 652 .gem_vm_ops = &psb_gem_vm_ops, 653 653 .dumb_create = psb_gem_dumb_create, 654 654 .dumb_map_offset = psb_gem_dumb_map_gtt, 655 - .dumb_destroy = psb_gem_dumb_destroy, 655 + .dumb_destroy = drm_gem_dumb_destroy, 656 656 .fops = &psb_gem_fops, 657 657 .name = DRIVER_NAME, 658 658 .desc = DRIVER_DESC,
-2
drivers/gpu/drm/gma500/psb_drv.h
··· 838 838 struct drm_file *file); 839 839 extern int psb_gem_dumb_create(struct drm_file *file, struct drm_device *dev, 840 840 struct drm_mode_create_dumb *args); 841 - extern int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, 842 - uint32_t handle); 843 841 extern int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev, 844 842 uint32_t handle, uint64_t *offset); 845 843 extern int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+1 -1
drivers/gpu/drm/i915/i915_drv.c
··· 1163 1163 1164 1164 .dumb_create = i915_gem_dumb_create, 1165 1165 .dumb_map_offset = i915_gem_mmap_gtt, 1166 - .dumb_destroy = i915_gem_dumb_destroy, 1166 + .dumb_destroy = drm_gem_dumb_destroy, 1167 1167 .ioctls = i915_ioctls, 1168 1168 .fops = &i915_driver_fops, 1169 1169 .name = DRIVER_NAME,
-2
drivers/gpu/drm/i915/i915_drv.h
··· 1732 1732 struct drm_mode_create_dumb *args); 1733 1733 int i915_gem_mmap_gtt(struct drm_file *file_priv, struct drm_device *dev, 1734 1734 uint32_t handle, uint64_t *offset); 1735 - int i915_gem_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev, 1736 - uint32_t handle); 1737 1735 /** 1738 1736 * Returns true if seq1 is later than seq2. 1739 1737 */
-7
drivers/gpu/drm/i915/i915_gem.c
··· 247 247 args->size, &args->handle); 248 248 } 249 249 250 - int i915_gem_dumb_destroy(struct drm_file *file, 251 - struct drm_device *dev, 252 - uint32_t handle) 253 - { 254 - return drm_gem_handle_delete(file, handle); 255 - } 256 - 257 250 /** 258 251 * Creates a new mm object and returns a handle to it. 259 252 */
+1 -1
drivers/gpu/drm/mgag200/mgag200_drv.c
··· 104 104 .gem_free_object = mgag200_gem_free_object, 105 105 .dumb_create = mgag200_dumb_create, 106 106 .dumb_map_offset = mgag200_dumb_mmap_offset, 107 - .dumb_destroy = mgag200_dumb_destroy, 107 + .dumb_destroy = drm_gem_dumb_destroy, 108 108 }; 109 109 110 110 static struct pci_driver mgag200_pci_driver = {
-3
drivers/gpu/drm/mgag200/mgag200_drv.h
··· 264 264 int mgag200_dumb_create(struct drm_file *file, 265 265 struct drm_device *dev, 266 266 struct drm_mode_create_dumb *args); 267 - int mgag200_dumb_destroy(struct drm_file *file, 268 - struct drm_device *dev, 269 - uint32_t handle); 270 267 void mgag200_gem_free_object(struct drm_gem_object *obj); 271 268 int 272 269 mgag200_dumb_mmap_offset(struct drm_file *file,
-7
drivers/gpu/drm/mgag200/mgag200_main.c
··· 310 310 return 0; 311 311 } 312 312 313 - int mgag200_dumb_destroy(struct drm_file *file, 314 - struct drm_device *dev, 315 - uint32_t handle) 316 - { 317 - return drm_gem_handle_delete(file, handle); 318 - } 319 - 320 313 int mgag200_gem_init_object(struct drm_gem_object *obj) 321 314 { 322 315 BUG();
-7
drivers/gpu/drm/nouveau/nouveau_display.c
··· 681 681 } 682 682 683 683 int 684 - nouveau_display_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev, 685 - uint32_t handle) 686 - { 687 - return drm_gem_handle_delete(file_priv, handle); 688 - } 689 - 690 - int 691 684 nouveau_display_dumb_map_offset(struct drm_file *file_priv, 692 685 struct drm_device *dev, 693 686 uint32_t handle, uint64_t *poffset)
-2
drivers/gpu/drm/nouveau/nouveau_display.h
··· 68 68 struct drm_mode_create_dumb *args); 69 69 int nouveau_display_dumb_map_offset(struct drm_file *, struct drm_device *, 70 70 u32 handle, u64 *offset); 71 - int nouveau_display_dumb_destroy(struct drm_file *, struct drm_device *, 72 - u32 handle); 73 71 74 72 void nouveau_hdmi_mode_set(struct drm_encoder *, struct drm_display_mode *); 75 73
+1 -1
drivers/gpu/drm/nouveau/nouveau_drm.c
··· 715 715 716 716 .dumb_create = nouveau_display_dumb_create, 717 717 .dumb_map_offset = nouveau_display_dumb_map_offset, 718 - .dumb_destroy = nouveau_display_dumb_destroy, 718 + .dumb_destroy = drm_gem_dumb_destroy, 719 719 720 720 .name = DRIVER_NAME, 721 721 .desc = DRIVER_DESC,
+1 -1
drivers/gpu/drm/omapdrm/omap_drv.c
··· 633 633 .gem_vm_ops = &omap_gem_vm_ops, 634 634 .dumb_create = omap_gem_dumb_create, 635 635 .dumb_map_offset = omap_gem_dumb_map_offset, 636 - .dumb_destroy = omap_gem_dumb_destroy, 636 + .dumb_destroy = drm_gem_dumb_destroy, 637 637 .ioctls = ioctls, 638 638 .num_ioctls = DRM_OMAP_NUM_IOCTLS, 639 639 .fops = &omapdriver_fops,
-2
drivers/gpu/drm/omapdrm/omap_drv.h
··· 225 225 void *omap_gem_vaddr(struct drm_gem_object *obj); 226 226 int omap_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, 227 227 uint32_t handle, uint64_t *offset); 228 - int omap_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, 229 - uint32_t handle); 230 228 int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev, 231 229 struct drm_mode_create_dumb *args); 232 230 int omap_gem_mmap(struct file *filp, struct vm_area_struct *vma);
-15
drivers/gpu/drm/omapdrm/omap_gem.c
··· 629 629 } 630 630 631 631 /** 632 - * omap_gem_dumb_destroy - destroy a dumb buffer 633 - * @file: client file 634 - * @dev: our DRM device 635 - * @handle: the object handle 636 - * 637 - * Destroy a handle that was created via omap_gem_dumb_create. 638 - */ 639 - int omap_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, 640 - uint32_t handle) 641 - { 642 - /* No special work needed, drop the reference and see what falls out */ 643 - return drm_gem_handle_delete(file, handle); 644 - } 645 - 646 - /** 647 632 * omap_gem_dumb_map - buffer mapping for dumb interface 648 633 * @file: our drm client file 649 634 * @dev: drm device
+1 -1
drivers/gpu/drm/qxl/qxl_drv.c
··· 221 221 222 222 .dumb_create = qxl_mode_dumb_create, 223 223 .dumb_map_offset = qxl_mode_dumb_mmap, 224 - .dumb_destroy = qxl_mode_dumb_destroy, 224 + .dumb_destroy = drm_gem_dumb_destroy, 225 225 #if defined(CONFIG_DEBUG_FS) 226 226 .debugfs_init = qxl_debugfs_init, 227 227 .debugfs_cleanup = qxl_debugfs_takedown,
-3
drivers/gpu/drm/qxl/qxl_drv.h
··· 418 418 int qxl_mode_dumb_create(struct drm_file *file_priv, 419 419 struct drm_device *dev, 420 420 struct drm_mode_create_dumb *args); 421 - int qxl_mode_dumb_destroy(struct drm_file *file_priv, 422 - struct drm_device *dev, 423 - uint32_t handle); 424 421 int qxl_mode_dumb_mmap(struct drm_file *filp, 425 422 struct drm_device *dev, 426 423 uint32_t handle, uint64_t *offset_p);
-7
drivers/gpu/drm/qxl/qxl_dumb.c
··· 68 68 return 0; 69 69 } 70 70 71 - int qxl_mode_dumb_destroy(struct drm_file *file_priv, 72 - struct drm_device *dev, 73 - uint32_t handle) 74 - { 75 - return drm_gem_handle_delete(file_priv, handle); 76 - } 77 - 78 71 int qxl_mode_dumb_mmap(struct drm_file *file_priv, 79 72 struct drm_device *dev, 80 73 uint32_t handle, uint64_t *offset_p)
-3
drivers/gpu/drm/radeon/radeon.h
··· 492 492 int radeon_mode_dumb_mmap(struct drm_file *filp, 493 493 struct drm_device *dev, 494 494 uint32_t handle, uint64_t *offset_p); 495 - int radeon_mode_dumb_destroy(struct drm_file *file_priv, 496 - struct drm_device *dev, 497 - uint32_t handle); 498 495 499 496 /* 500 497 * Semaphores.
+1 -4
drivers/gpu/drm/radeon/radeon_drv.c
··· 118 118 int radeon_mode_dumb_create(struct drm_file *file_priv, 119 119 struct drm_device *dev, 120 120 struct drm_mode_create_dumb *args); 121 - int radeon_mode_dumb_destroy(struct drm_file *file_priv, 122 - struct drm_device *dev, 123 - uint32_t handle); 124 121 struct sg_table *radeon_gem_prime_get_sg_table(struct drm_gem_object *obj); 125 122 struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev, 126 123 size_t size, ··· 418 421 .gem_close_object = radeon_gem_object_close, 419 422 .dumb_create = radeon_mode_dumb_create, 420 423 .dumb_map_offset = radeon_mode_dumb_mmap, 421 - .dumb_destroy = radeon_mode_dumb_destroy, 424 + .dumb_destroy = drm_gem_dumb_destroy, 422 425 .fops = &radeon_driver_kms_fops, 423 426 424 427 .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-7
drivers/gpu/drm/radeon/radeon_gem.c
··· 570 570 return 0; 571 571 } 572 572 573 - int radeon_mode_dumb_destroy(struct drm_file *file_priv, 574 - struct drm_device *dev, 575 - uint32_t handle) 576 - { 577 - return drm_gem_handle_delete(file_priv, handle); 578 - } 579 - 580 573 #if defined(CONFIG_DEBUG_FS) 581 574 static int radeon_debugfs_gem_info(struct seq_file *m, void *data) 582 575 {
+1 -1
drivers/gpu/drm/rcar-du/rcar_du_drv.c
··· 258 258 .gem_prime_mmap = drm_gem_cma_prime_mmap, 259 259 .dumb_create = rcar_du_dumb_create, 260 260 .dumb_map_offset = drm_gem_cma_dumb_map_offset, 261 - .dumb_destroy = drm_gem_cma_dumb_destroy, 261 + .dumb_destroy = drm_gem_dumb_destroy, 262 262 .fops = &rcar_du_fops, 263 263 .name = "rcar-du", 264 264 .desc = "Renesas R-Car Display Unit",
+1 -1
drivers/gpu/drm/shmobile/shmob_drm_drv.c
··· 285 285 .gem_prime_mmap = drm_gem_cma_prime_mmap, 286 286 .dumb_create = drm_gem_cma_dumb_create, 287 287 .dumb_map_offset = drm_gem_cma_dumb_map_offset, 288 - .dumb_destroy = drm_gem_cma_dumb_destroy, 288 + .dumb_destroy = drm_gem_dumb_destroy, 289 289 .fops = &shmob_drm_fops, 290 290 .name = "shmob-drm", 291 291 .desc = "Renesas SH Mobile DRM",
+1 -1
drivers/gpu/drm/tilcdc/tilcdc_drv.c
··· 519 519 .gem_vm_ops = &drm_gem_cma_vm_ops, 520 520 .dumb_create = drm_gem_cma_dumb_create, 521 521 .dumb_map_offset = drm_gem_cma_dumb_map_offset, 522 - .dumb_destroy = drm_gem_cma_dumb_destroy, 522 + .dumb_destroy = drm_gem_dumb_destroy, 523 523 #ifdef CONFIG_DEBUG_FS 524 524 .debugfs_init = tilcdc_debugfs_init, 525 525 .debugfs_cleanup = tilcdc_debugfs_cleanup,
+1 -1
drivers/gpu/drm/udl/udl_drv.c
··· 84 84 85 85 .dumb_create = udl_dumb_create, 86 86 .dumb_map_offset = udl_gem_mmap, 87 - .dumb_destroy = udl_dumb_destroy, 87 + .dumb_destroy = drm_gem_dumb_destroy, 88 88 .fops = &udl_driver_fops, 89 89 90 90 .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-2
drivers/gpu/drm/udl/udl_drv.h
··· 114 114 struct drm_mode_create_dumb *args); 115 115 int udl_gem_mmap(struct drm_file *file_priv, struct drm_device *dev, 116 116 uint32_t handle, uint64_t *offset); 117 - int udl_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev, 118 - uint32_t handle); 119 117 120 118 int udl_gem_init_object(struct drm_gem_object *obj); 121 119 void udl_gem_free_object(struct drm_gem_object *gem_obj);
-6
drivers/gpu/drm/udl/udl_gem.c
··· 66 66 args->size, &args->handle); 67 67 } 68 68 69 - int udl_dumb_destroy(struct drm_file *file, struct drm_device *dev, 70 - uint32_t handle) 71 - { 72 - return drm_gem_handle_delete(file, handle); 73 - } 74 - 75 69 int udl_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma) 76 70 { 77 71 int ret;
+1 -1
drivers/gpu/host1x/drm/drm.c
··· 633 633 .gem_vm_ops = &tegra_bo_vm_ops, 634 634 .dumb_create = tegra_bo_dumb_create, 635 635 .dumb_map_offset = tegra_bo_dumb_map_offset, 636 - .dumb_destroy = tegra_bo_dumb_destroy, 636 + .dumb_destroy = drm_gem_dumb_destroy, 637 637 638 638 .ioctls = tegra_drm_ioctls, 639 639 .num_ioctls = ARRAY_SIZE(tegra_drm_ioctls),
-6
drivers/gpu/host1x/drm/gem.c
··· 261 261 262 262 return ret; 263 263 } 264 - 265 - int tegra_bo_dumb_destroy(struct drm_file *file, struct drm_device *drm, 266 - unsigned int handle) 267 - { 268 - return drm_gem_handle_delete(file, handle); 269 - }
-2
drivers/gpu/host1x/drm/gem.h
··· 49 49 struct drm_mode_create_dumb *args); 50 50 int tegra_bo_dumb_map_offset(struct drm_file *file, struct drm_device *drm, 51 51 uint32_t handle, uint64_t *offset); 52 - int tegra_bo_dumb_destroy(struct drm_file *file, struct drm_device *drm, 53 - unsigned int handle); 54 52 55 53 int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma); 56 54
+1 -1
drivers/staging/imx-drm/imx-drm-core.c
··· 797 797 .gem_vm_ops = &drm_gem_cma_vm_ops, 798 798 .dumb_create = drm_gem_cma_dumb_create, 799 799 .dumb_map_offset = drm_gem_cma_dumb_map_offset, 800 - .dumb_destroy = drm_gem_cma_dumb_destroy, 800 + .dumb_destroy = drm_gem_dumb_destroy, 801 801 802 802 .get_vblank_counter = drm_vblank_count, 803 803 .enable_vblank = imx_drm_enable_vblank,
+3
include/drm/drmP.h
··· 1548 1548 extern struct sg_table *drm_prime_pages_to_sg(struct page **pages, int nr_pages); 1549 1549 extern void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg); 1550 1550 1551 + int drm_gem_dumb_destroy(struct drm_file *file, 1552 + struct drm_device *dev, 1553 + uint32_t handle); 1551 1554 1552 1555 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv); 1553 1556 void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv);
-8
include/drm/drm_gem_cma_helper.h
··· 30 30 /* set vm_flags and we can change the vm attribute to other one at here. */ 31 31 int drm_gem_cma_mmap(struct file *filp, struct vm_area_struct *vma); 32 32 33 - /* 34 - * destroy memory region allocated. 35 - * - a gem handle and physical memory region pointed by a gem object 36 - * would be released by drm_gem_handle_delete(). 37 - */ 38 - int drm_gem_cma_dumb_destroy(struct drm_file *file_priv, 39 - struct drm_device *drm, unsigned int handle); 40 - 41 33 /* allocate physical memory. */ 42 34 struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, 43 35 unsigned int size);