]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
drm/gem: create drm_gem_dumb_destroy
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 16 Jul 2013 07:12:04 +0000 (09:12 +0200)
committerDave Airlie <airlied@redhat.com>
Tue, 6 Aug 2013 23:59:24 +0000 (09:59 +1000)
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>
44 files changed:
drivers/gpu/drm/ast/ast_drv.c
drivers/gpu/drm/ast/ast_drv.h
drivers/gpu/drm/ast/ast_main.c
drivers/gpu/drm/cirrus/cirrus_drv.c
drivers/gpu/drm/cirrus/cirrus_drv.h
drivers/gpu/drm/cirrus/cirrus_main.c
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/drm_gem_cma_helper.c
drivers/gpu/drm/exynos/exynos_drm_drv.c
drivers/gpu/drm/exynos/exynos_drm_gem.c
drivers/gpu/drm/exynos/exynos_drm_gem.h
drivers/gpu/drm/gma500/gem.c
drivers/gpu/drm/gma500/psb_drv.c
drivers/gpu/drm/gma500/psb_drv.h
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/mgag200/mgag200_drv.c
drivers/gpu/drm/mgag200/mgag200_drv.h
drivers/gpu/drm/mgag200/mgag200_main.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_display.h
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/omapdrm/omap_drv.c
drivers/gpu/drm/omapdrm/omap_drv.h
drivers/gpu/drm/omapdrm/omap_gem.c
drivers/gpu/drm/qxl/qxl_drv.c
drivers/gpu/drm/qxl/qxl_drv.h
drivers/gpu/drm/qxl/qxl_dumb.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/radeon/radeon_gem.c
drivers/gpu/drm/rcar-du/rcar_du_drv.c
drivers/gpu/drm/shmobile/shmob_drm_drv.c
drivers/gpu/drm/tilcdc/tilcdc_drv.c
drivers/gpu/drm/udl/udl_drv.c
drivers/gpu/drm/udl/udl_drv.h
drivers/gpu/drm/udl/udl_gem.c
drivers/gpu/host1x/drm/drm.c
drivers/gpu/host1x/drm/gem.c
drivers/gpu/host1x/drm/gem.h
drivers/staging/imx-drm/imx-drm-core.c
include/drm/drmP.h
include/drm/drm_gem_cma_helper.h

index df0d0a08097a13e4765cd649545b855f0614ff91..a144fb0448528d9af3a01868aa80583dcf844d54 100644 (file)
@@ -216,7 +216,7 @@ static struct drm_driver driver = {
        .gem_free_object = ast_gem_free_object,
        .dumb_create = ast_dumb_create,
        .dumb_map_offset = ast_dumb_mmap_offset,
-       .dumb_destroy = ast_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 
 };
 
index 622d4ae7eb9e9e6433706d819b28fb9e0b736ffc..796dbb212a4138180f7bda2e50fb765f22805c93 100644 (file)
@@ -322,9 +322,6 @@ ast_bo(struct ttm_buffer_object *bo)
 extern int ast_dumb_create(struct drm_file *file,
                           struct drm_device *dev,
                           struct drm_mode_create_dumb *args);
-extern int ast_dumb_destroy(struct drm_file *file,
-                           struct drm_device *dev,
-                           uint32_t handle);
 
 extern int ast_gem_init_object(struct drm_gem_object *obj);
 extern void ast_gem_free_object(struct drm_gem_object *obj);
index c195dc2abc09ada4af8e9aaef5d55eb60e300343..7f6152d374cace41ae991b3080df769e385824b8 100644 (file)
@@ -449,13 +449,6 @@ int ast_dumb_create(struct drm_file *file,
        return 0;
 }
 
-int ast_dumb_destroy(struct drm_file *file,
-                    struct drm_device *dev,
-                    uint32_t handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 int ast_gem_init_object(struct drm_gem_object *obj)
 {
        BUG();
index 8ecb601152effe17019967c559e48cddfac2f7b4..d35d99c15f84c3cf30a04526f1767a2d528d3f5d 100644 (file)
@@ -102,7 +102,7 @@ static struct drm_driver driver = {
        .gem_free_object = cirrus_gem_free_object,
        .dumb_create = cirrus_dumb_create,
        .dumb_map_offset = cirrus_dumb_mmap_offset,
-       .dumb_destroy = cirrus_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 };
 
 static struct pci_driver cirrus_pci_driver = {
index bae55609e6c3f2192c2cd49a33417badf4c6e962..9b0bb9184afdbfa2f1eb3ebbcad2feda23aa67a4 100644 (file)
@@ -203,9 +203,6 @@ int cirrus_gem_create(struct drm_device *dev,
 int cirrus_dumb_create(struct drm_file *file,
                    struct drm_device *dev,
                       struct drm_mode_create_dumb *args);
-int cirrus_dumb_destroy(struct drm_file *file,
-                    struct drm_device *dev,
-                       uint32_t handle);
 
 int cirrus_framebuffer_init(struct drm_device *dev,
                           struct cirrus_framebuffer *gfb,
index 3a7a0efe367514b35003765520388d37246b3919..f130a533a51257dd13fcbda93462dded728182d0 100644 (file)
@@ -255,13 +255,6 @@ int cirrus_dumb_create(struct drm_file *file,
        return 0;
 }
 
-int cirrus_dumb_destroy(struct drm_file *file,
-                    struct drm_device *dev,
-                    uint32_t handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 int cirrus_gem_init_object(struct drm_gem_object *obj)
 {
        BUG();
index 1f7657286f04a9eb9bc884165bcae90de67718f9..9ab038c8dd5f004db13718c8c5f3f86e7da87bb6 100644 (file)
@@ -243,6 +243,20 @@ drm_gem_handle_delete(struct drm_file *filp, u32 handle)
 }
 EXPORT_SYMBOL(drm_gem_handle_delete);
 
+/**
+ * drm_gem_dumb_destroy - dumb fb callback helper for gem based drivers
+ * 
+ * This implements the ->dumb_destroy kms driver callback for drivers which use
+ * gem to manage their backing storage.
+ */
+int drm_gem_dumb_destroy(struct drm_file *file,
+                        struct drm_device *dev,
+                        uint32_t handle)
+{
+       return drm_gem_handle_delete(file, handle);
+}
+EXPORT_SYMBOL(drm_gem_dumb_destroy);
+
 /**
  * Create a handle for this object. This adds a handle reference
  * to the object, which includes a regular reference count. Callers
index 847f091176663a197988629ebf3aec6910cd21f2..0a4f80574eb467ea88ed5ca50acf8d29fba6cf08 100644 (file)
@@ -281,16 +281,6 @@ int drm_gem_cma_mmap(struct file *filp, struct vm_area_struct *vma)
 }
 EXPORT_SYMBOL_GPL(drm_gem_cma_mmap);
 
-/*
- * drm_gem_cma_dumb_destroy - (struct drm_driver)->dumb_destroy callback function
- */
-int drm_gem_cma_dumb_destroy(struct drm_file *file_priv,
-               struct drm_device *drm, unsigned int handle)
-{
-       return drm_gem_handle_delete(file_priv, handle);
-}
-EXPORT_SYMBOL_GPL(drm_gem_cma_dumb_destroy);
-
 #ifdef CONFIG_DEBUG_FS
 void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj, struct seq_file *m)
 {
index ca2729a851299ade4f58e148ba08d165f26e51f3..21fc28ae5e6eac6dbe0584608ae36c0cefcda5fc 100644 (file)
@@ -271,7 +271,7 @@ static struct drm_driver exynos_drm_driver = {
        .gem_vm_ops             = &exynos_drm_gem_vm_ops,
        .dumb_create            = exynos_drm_gem_dumb_create,
        .dumb_map_offset        = exynos_drm_gem_dumb_map_offset,
-       .dumb_destroy           = exynos_drm_gem_dumb_destroy,
+       .dumb_destroy           = drm_gem_dumb_destroy,
        .prime_handle_to_fd     = drm_gem_prime_handle_to_fd,
        .prime_fd_to_handle     = drm_gem_prime_fd_to_handle,
        .gem_prime_export       = exynos_dmabuf_prime_export,
index be32db1ab2906ce9a41cc414f89c5cb4f6253645..b904633863e8219735022e214adbab91ba01b2f1 100644 (file)
@@ -717,26 +717,6 @@ unlock:
        return ret;
 }
 
-int exynos_drm_gem_dumb_destroy(struct drm_file *file_priv,
-                               struct drm_device *dev,
-                               unsigned int handle)
-{
-       int ret;
-
-       /*
-        * obj->refcount and obj->handle_count are decreased and
-        * if both them are 0 then exynos_drm_gem_free_object()
-        * would be called by callback to release resources.
-        */
-       ret = drm_gem_handle_delete(file_priv, handle);
-       if (ret < 0) {
-               DRM_ERROR("failed to delete drm_gem_handle.\n");
-               return ret;
-       }
-
-       return 0;
-}
-
 int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
        struct drm_gem_object *obj = vma->vm_private_data;
index 468766bee450837eefe19f37db7e7fdcc00133c6..09555afdfe9c6bf94fd798d2e899d4e46a1e8042 100644 (file)
@@ -151,15 +151,6 @@ int exynos_drm_gem_dumb_map_offset(struct drm_file *file_priv,
                                   struct drm_device *dev, uint32_t handle,
                                   uint64_t *offset);
 
-/*
- * destroy memory region allocated.
- *     - a gem handle and physical memory region pointed by a gem object
- *     would be released by drm_gem_handle_delete().
- */
-int exynos_drm_gem_dumb_destroy(struct drm_file *file_priv,
-                               struct drm_device *dev,
-                               unsigned int handle);
-
 /* page fault handler and mmap fault address(virtual) to physical memory. */
 int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
 
index 2f77bea30b11033904909d2e505546f028ab8158..10ae8c52d06f820b5a1ea5bfb9257ca4ee2d40b7 100644 (file)
@@ -161,23 +161,6 @@ int psb_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
        return psb_gem_create(file, dev, args->size, &args->handle);
 }
 
-/**
- *     psb_gem_dumb_destroy    -       destroy a dumb buffer
- *     @file: client file
- *     @dev: our DRM device
- *     @handle: the object handle
- *
- *     Destroy a handle that was created via psb_gem_dumb_create, at least
- *     we hope it was created that way. i915 seems to assume the caller
- *     does the checking but that might be worth review ! FIXME
- */
-int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev,
-                       uint32_t handle)
-{
-       /* No special work needed, drop the reference and see what falls out */
-       return drm_gem_handle_delete(file, handle);
-}
-
 /**
  *     psb_gem_fault           -       pagefault handler for GEM objects
  *     @vma: the VMA of the GEM object
index bddea5807442d6faf2b94565a6c42baf3b230d92..ed06d5ce3757c5f573da3bc778a5d609a751e301 100644 (file)
@@ -652,7 +652,7 @@ static struct drm_driver driver = {
        .gem_vm_ops = &psb_gem_vm_ops,
        .dumb_create = psb_gem_dumb_create,
        .dumb_map_offset = psb_gem_dumb_map_gtt,
-       .dumb_destroy = psb_gem_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
        .fops = &psb_gem_fops,
        .name = DRIVER_NAME,
        .desc = DRIVER_DESC,
index 6053b8abcd12cc3da00f5b930829f96b15ab2ebf..984cacfcbaf24a1746c9a2303d8379baa26be8a9 100644 (file)
@@ -838,8 +838,6 @@ extern int psb_gem_get_aperture(struct drm_device *dev, void *data,
                        struct drm_file *file);
 extern int psb_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
                        struct drm_mode_create_dumb *args);
-extern int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev,
-                       uint32_t handle);
 extern int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev,
                        uint32_t handle, uint64_t *offset);
 extern int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
index b07362f2675e28c8b8325645a6222788a845ce51..cca12db6dbb74124e0ef7482d47488904e0bcd61 100644 (file)
@@ -1163,7 +1163,7 @@ static struct drm_driver driver = {
 
        .dumb_create = i915_gem_dumb_create,
        .dumb_map_offset = i915_gem_mmap_gtt,
-       .dumb_destroy = i915_gem_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
        .ioctls = i915_ioctls,
        .fops = &i915_driver_fops,
        .name = DRIVER_NAME,
index cef35d3ab37b66b359b52ae9cb7d9f96468edf9d..5cb3e4d34230bd9127ea3828d527dd3e8b3c418f 100644 (file)
@@ -1732,8 +1732,6 @@ int i915_gem_dumb_create(struct drm_file *file_priv,
                         struct drm_mode_create_dumb *args);
 int i915_gem_mmap_gtt(struct drm_file *file_priv, struct drm_device *dev,
                      uint32_t handle, uint64_t *offset);
-int i915_gem_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev,
-                         uint32_t handle);
 /**
  * Returns true if seq1 is later than seq2.
  */
index 8673a000a3731c95964053a26f0509a32b0c145a..2aa0894b59cd8bbd1a9a5be607419d7a768533d3 100644 (file)
@@ -247,13 +247,6 @@ i915_gem_dumb_create(struct drm_file *file,
                               args->size, &args->handle);
 }
 
-int i915_gem_dumb_destroy(struct drm_file *file,
-                         struct drm_device *dev,
-                         uint32_t handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 /**
  * Creates a new mm object and returns a handle to it.
  */
index 122b571ccc7ce7a940f267ab002821952a535c08..bd919647873541be09d7569d7a996e00b8bdcd13 100644 (file)
@@ -104,7 +104,7 @@ static struct drm_driver driver = {
        .gem_free_object = mgag200_gem_free_object,
        .dumb_create = mgag200_dumb_create,
        .dumb_map_offset = mgag200_dumb_mmap_offset,
-       .dumb_destroy = mgag200_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 };
 
 static struct pci_driver mgag200_pci_driver = {
index 12e2499d935266150643a2bbb624a149e6fb59d0..baaae19332e2e9d98d3cda327d44b8f7c5d5ecb4 100644 (file)
@@ -264,9 +264,6 @@ int mgag200_gem_init_object(struct drm_gem_object *obj);
 int mgag200_dumb_create(struct drm_file *file,
                        struct drm_device *dev,
                        struct drm_mode_create_dumb *args);
-int mgag200_dumb_destroy(struct drm_file *file,
-                        struct drm_device *dev,
-                        uint32_t handle);
 void mgag200_gem_free_object(struct drm_gem_object *obj);
 int
 mgag200_dumb_mmap_offset(struct drm_file *file,
index 1a75ea395b336579e4a8c2c76c56aec8d3f299ec..0f8b861b10b3e6749704ea6a82cd57457602bfc6 100644 (file)
@@ -310,13 +310,6 @@ int mgag200_dumb_create(struct drm_file *file,
        return 0;
 }
 
-int mgag200_dumb_destroy(struct drm_file *file,
-                    struct drm_device *dev,
-                    uint32_t handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 int mgag200_gem_init_object(struct drm_gem_object *obj)
 {
        BUG();
index 7a8caa126db66f1ea7352f29f930053aa70b1825..c8ffba24720acb7c470bfe481ef883bae8c0e5b3 100644 (file)
@@ -680,13 +680,6 @@ nouveau_display_dumb_create(struct drm_file *file_priv, struct drm_device *dev,
        return ret;
 }
 
-int
-nouveau_display_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev,
-                            uint32_t handle)
-{
-       return drm_gem_handle_delete(file_priv, handle);
-}
-
 int
 nouveau_display_dumb_map_offset(struct drm_file *file_priv,
                                struct drm_device *dev,
index 1ea3e4734b621f6e103a034f69696ea9b35529df..185e74132a6d9ce2f5679c084ef237663fbdf943 100644 (file)
@@ -68,8 +68,6 @@ int  nouveau_display_dumb_create(struct drm_file *, struct drm_device *,
                                 struct drm_mode_create_dumb *args);
 int  nouveau_display_dumb_map_offset(struct drm_file *, struct drm_device *,
                                     u32 handle, u64 *offset);
-int  nouveau_display_dumb_destroy(struct drm_file *, struct drm_device *,
-                                 u32 handle);
 
 void nouveau_hdmi_mode_set(struct drm_encoder *, struct drm_display_mode *);
 
index e990327d117a8daf869b21c51946d02555d5a6bf..a900cde497a61fddc102686da6f3e789bfc57363 100644 (file)
@@ -715,7 +715,7 @@ driver = {
 
        .dumb_create = nouveau_display_dumb_create,
        .dumb_map_offset = nouveau_display_dumb_map_offset,
-       .dumb_destroy = nouveau_display_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 
        .name = DRIVER_NAME,
        .desc = DRIVER_DESC,
index a3004f12b9a3657173d9aa6e56af3f1c6330bc14..1ddd1a15764dd190a4e2b54ef79a55fcb6302710 100644 (file)
@@ -633,7 +633,7 @@ static struct drm_driver omap_drm_driver = {
                .gem_vm_ops = &omap_gem_vm_ops,
                .dumb_create = omap_gem_dumb_create,
                .dumb_map_offset = omap_gem_dumb_map_offset,
-               .dumb_destroy = omap_gem_dumb_destroy,
+               .dumb_destroy = drm_gem_dumb_destroy,
                .ioctls = ioctls,
                .num_ioctls = DRM_OMAP_NUM_IOCTLS,
                .fops = &omapdriver_fops,
index 14f17da2ce25552a973c7d8d5cebe1ed1c8fa037..f2ba425d80ddd6b817178325e34084b8aecaed73 100644 (file)
@@ -225,8 +225,6 @@ int omap_gem_init_object(struct drm_gem_object *obj);
 void *omap_gem_vaddr(struct drm_gem_object *obj);
 int omap_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
                uint32_t handle, uint64_t *offset);
-int omap_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev,
-               uint32_t handle);
 int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
                struct drm_mode_create_dumb *args);
 int omap_gem_mmap(struct file *filp, struct vm_area_struct *vma);
index f90531fc00c911a01f795fbd692c33e74a939bb9..b1f19702550fa79ab06c5c6a00fdaec917696488 100644 (file)
@@ -628,21 +628,6 @@ int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
                        OMAP_BO_SCANOUT | OMAP_BO_WC, &args->handle);
 }
 
-/**
- * omap_gem_dumb_destroy       -       destroy a dumb buffer
- * @file: client file
- * @dev: our DRM device
- * @handle: the object handle
- *
- * Destroy a handle that was created via omap_gem_dumb_create.
- */
-int omap_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev,
-               uint32_t handle)
-{
-       /* No special work needed, drop the reference and see what falls out */
-       return drm_gem_handle_delete(file, handle);
-}
-
 /**
  * omap_gem_dumb_map   -       buffer mapping for dumb interface
  * @file: our drm client file
index df0b577a66081bb86bc4671293f8fee28cd273d0..48f2dfdeabcb2ed56a5d37ac5937cf4a1c84e308 100644 (file)
@@ -221,7 +221,7 @@ static struct drm_driver qxl_driver = {
 
        .dumb_create = qxl_mode_dumb_create,
        .dumb_map_offset = qxl_mode_dumb_mmap,
-       .dumb_destroy = qxl_mode_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 #if defined(CONFIG_DEBUG_FS)
        .debugfs_init = qxl_debugfs_init,
        .debugfs_cleanup = qxl_debugfs_takedown,
index aacb791464a34b770be0cd776fd7162d0fd0f344..57cb7a8e6fb507293f69caf20c9f647e048c2b2c 100644 (file)
@@ -418,9 +418,6 @@ int qxl_bo_kmap(struct qxl_bo *bo, void **ptr);
 int qxl_mode_dumb_create(struct drm_file *file_priv,
                         struct drm_device *dev,
                         struct drm_mode_create_dumb *args);
-int qxl_mode_dumb_destroy(struct drm_file *file_priv,
-                         struct drm_device *dev,
-                         uint32_t handle);
 int qxl_mode_dumb_mmap(struct drm_file *filp,
                       struct drm_device *dev,
                       uint32_t handle, uint64_t *offset_p);
index 847c4ee798f7b6816ee9c327e573b997d66c953c..d34bb4130ff095d74d915abbe2d3503b78077fc1 100644 (file)
@@ -68,13 +68,6 @@ int qxl_mode_dumb_create(struct drm_file *file_priv,
        return 0;
 }
 
-int qxl_mode_dumb_destroy(struct drm_file *file_priv,
-                            struct drm_device *dev,
-                            uint32_t handle)
-{
-       return drm_gem_handle_delete(file_priv, handle);
-}
-
 int qxl_mode_dumb_mmap(struct drm_file *file_priv,
                       struct drm_device *dev,
                       uint32_t handle, uint64_t *offset_p)
index 2f08219c39b617d67ab07f83e7aaff7072bd51b7..19066d1dcb7da405fd93cc2c8c90c74ff70cedf6 100644 (file)
@@ -492,9 +492,6 @@ int radeon_mode_dumb_create(struct drm_file *file_priv,
 int radeon_mode_dumb_mmap(struct drm_file *filp,
                          struct drm_device *dev,
                          uint32_t handle, uint64_t *offset_p);
-int radeon_mode_dumb_destroy(struct drm_file *file_priv,
-                            struct drm_device *dev,
-                            uint32_t handle);
 
 /*
  * Semaphores.
index cb7f1a8c5a4a61adbb41cedfac601628de9a5aa2..4071fe70c416315204586d41653704b033389557 100644 (file)
@@ -118,9 +118,6 @@ int radeon_mode_dumb_mmap(struct drm_file *filp,
 int radeon_mode_dumb_create(struct drm_file *file_priv,
                            struct drm_device *dev,
                            struct drm_mode_create_dumb *args);
-int radeon_mode_dumb_destroy(struct drm_file *file_priv,
-                            struct drm_device *dev,
-                            uint32_t handle);
 struct sg_table *radeon_gem_prime_get_sg_table(struct drm_gem_object *obj);
 struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
                                                        size_t size,
@@ -421,7 +418,7 @@ static struct drm_driver kms_driver = {
        .gem_close_object = radeon_gem_object_close,
        .dumb_create = radeon_mode_dumb_create,
        .dumb_map_offset = radeon_mode_dumb_mmap,
-       .dumb_destroy = radeon_mode_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
        .fops = &radeon_driver_kms_fops,
 
        .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
index aa796031ab659147d546d978ec94a26d0f0bc808..dce99c8a583501e92b72f4012a250a917835a51f 100644 (file)
@@ -570,13 +570,6 @@ int radeon_mode_dumb_create(struct drm_file *file_priv,
        return 0;
 }
 
-int radeon_mode_dumb_destroy(struct drm_file *file_priv,
-                            struct drm_device *dev,
-                            uint32_t handle)
-{
-       return drm_gem_handle_delete(file_priv, handle);
-}
-
 #if defined(CONFIG_DEBUG_FS)
 static int radeon_debugfs_gem_info(struct seq_file *m, void *data)
 {
index dc0fe09b2ba10d8b39f51e29a9340818f8c253ff..5069d9c234bb71a5d9d59bcd63184f2c17240aa0 100644 (file)
@@ -258,7 +258,7 @@ static struct drm_driver rcar_du_driver = {
        .gem_prime_mmap         = drm_gem_cma_prime_mmap,
        .dumb_create            = rcar_du_dumb_create,
        .dumb_map_offset        = drm_gem_cma_dumb_map_offset,
-       .dumb_destroy           = drm_gem_cma_dumb_destroy,
+       .dumb_destroy           = drm_gem_dumb_destroy,
        .fops                   = &rcar_du_fops,
        .name                   = "rcar-du",
        .desc                   = "Renesas R-Car Display Unit",
index 5f83f9a3ef593503867cace33ff8dd6ae865db86..7f2ea1a5a45f4e2142dc6c374c59b96595245773 100644 (file)
@@ -285,7 +285,7 @@ static struct drm_driver shmob_drm_driver = {
        .gem_prime_mmap         = drm_gem_cma_prime_mmap,
        .dumb_create            = drm_gem_cma_dumb_create,
        .dumb_map_offset        = drm_gem_cma_dumb_map_offset,
-       .dumb_destroy           = drm_gem_cma_dumb_destroy,
+       .dumb_destroy           = drm_gem_dumb_destroy,
        .fops                   = &shmob_drm_fops,
        .name                   = "shmob-drm",
        .desc                   = "Renesas SH Mobile DRM",
index 40b71da5a2145815f7539a76c0c01791fbb94fbc..14801c2235ae86228441f8b343a893521af5e053 100644 (file)
@@ -519,7 +519,7 @@ static struct drm_driver tilcdc_driver = {
        .gem_vm_ops         = &drm_gem_cma_vm_ops,
        .dumb_create        = drm_gem_cma_dumb_create,
        .dumb_map_offset    = drm_gem_cma_dumb_map_offset,
-       .dumb_destroy       = drm_gem_cma_dumb_destroy,
+       .dumb_destroy       = drm_gem_dumb_destroy,
 #ifdef CONFIG_DEBUG_FS
        .debugfs_init       = tilcdc_debugfs_init,
        .debugfs_cleanup    = tilcdc_debugfs_cleanup,
index c0770dbba74aebf4937eef4459380aa8f207829f..bb0af58c769a09923c2e6a73b450d2702bd7e919 100644 (file)
@@ -84,7 +84,7 @@ static struct drm_driver driver = {
 
        .dumb_create = udl_dumb_create,
        .dumb_map_offset = udl_gem_mmap,
-       .dumb_destroy = udl_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
        .fops = &udl_driver_fops,
 
        .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
index cc6d90f28c71a7c2958cbd652e26552f3a23923a..56aec9409fa317c37054705e0a54c724cb126068 100644 (file)
@@ -114,8 +114,6 @@ int udl_dumb_create(struct drm_file *file_priv,
                    struct drm_mode_create_dumb *args);
 int udl_gem_mmap(struct drm_file *file_priv, struct drm_device *dev,
                 uint32_t handle, uint64_t *offset);
-int udl_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev,
-                    uint32_t handle);
 
 int udl_gem_init_object(struct drm_gem_object *obj);
 void udl_gem_free_object(struct drm_gem_object *gem_obj);
index 2a4cb2f83b36329adf994469335ab74f40282e2f..b5e3b803825361891b66cf197c9ab6d32e51cc50 100644 (file)
@@ -66,12 +66,6 @@ int udl_dumb_create(struct drm_file *file,
                              args->size, &args->handle);
 }
 
-int udl_dumb_destroy(struct drm_file *file, struct drm_device *dev,
-                    uint32_t handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 int udl_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
 {
        int ret;
index e184b00faacdfe3688dd262a1bbac8f4346a6643..87aa09bf7ba88f9c2b637bb2ad535d783ccef63f 100644 (file)
@@ -633,7 +633,7 @@ struct drm_driver tegra_drm_driver = {
        .gem_vm_ops = &tegra_bo_vm_ops,
        .dumb_create = tegra_bo_dumb_create,
        .dumb_map_offset = tegra_bo_dumb_map_offset,
-       .dumb_destroy = tegra_bo_dumb_destroy,
+       .dumb_destroy = drm_gem_dumb_destroy,
 
        .ioctls = tegra_drm_ioctls,
        .num_ioctls = ARRAY_SIZE(tegra_drm_ioctls),
index bc323b3dbe4df01666e85f28c3bd36aa9bb4dbf2..3c35622c9f15025f297c2d1aaacdd4e440483411 100644 (file)
@@ -261,9 +261,3 @@ int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma)
 
        return ret;
 }
-
-int tegra_bo_dumb_destroy(struct drm_file *file, struct drm_device *drm,
-                         unsigned int handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
index 34de2b486eb72504a03aafe9a4e1d9f8bb68b3e8..2e93b0379da807d6c4f366251a601a39f3f86ac3 100644 (file)
@@ -49,8 +49,6 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm,
                         struct drm_mode_create_dumb *args);
 int tegra_bo_dumb_map_offset(struct drm_file *file, struct drm_device *drm,
                             uint32_t handle, uint64_t *offset);
-int tegra_bo_dumb_destroy(struct drm_file *file, struct drm_device *drm,
-                         unsigned int handle);
 
 int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma);
 
index 9854a1daf606b9b713c63ec8114da1a163948df2..a827858af944db8237c651ffe761ba698c89ebee 100644 (file)
@@ -797,7 +797,7 @@ static struct drm_driver imx_drm_driver = {
        .gem_vm_ops             = &drm_gem_cma_vm_ops,
        .dumb_create            = drm_gem_cma_dumb_create,
        .dumb_map_offset        = drm_gem_cma_dumb_map_offset,
-       .dumb_destroy           = drm_gem_cma_dumb_destroy,
+       .dumb_destroy           = drm_gem_dumb_destroy,
 
        .get_vblank_counter     = drm_vblank_count,
        .enable_vblank          = imx_drm_enable_vblank,
index 4b518e05d293c80095868215728fa8067171581e..a029dea13f48e944f56bb7585fa8d143b70743b2 100644 (file)
@@ -1548,6 +1548,9 @@ extern int drm_prime_sg_to_page_addr_arrays(struct sg_table *sgt, struct page **
 extern struct sg_table *drm_prime_pages_to_sg(struct page **pages, int nr_pages);
 extern void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
 
+int drm_gem_dumb_destroy(struct drm_file *file,
+                        struct drm_device *dev,
+                        uint32_t handle);
 
 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv);
 void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv);
index c34f27f80bcc29f189de6e317c17538d5d567889..89b4d7db1ebd3bae06c366bfcdc923b25cee242f 100644 (file)
@@ -30,14 +30,6 @@ int drm_gem_cma_dumb_map_offset(struct drm_file *file_priv,
 /* set vm_flags and we can change the vm attribute to other one at here. */
 int drm_gem_cma_mmap(struct file *filp, struct vm_area_struct *vma);
 
-/*
- * destroy memory region allocated.
- *     - a gem handle and physical memory region pointed by a gem object
- *     would be released by drm_gem_handle_delete().
- */
-int drm_gem_cma_dumb_destroy(struct drm_file *file_priv,
-               struct drm_device *drm, unsigned int handle);
-
 /* allocate physical memory. */
 struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm,
                unsigned int size);