| From 97a39ea0ac420e99b5201704f0df265e191da03e Mon Sep 17 00:00:00 2001 |
| From: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Tue, 16 Jul 2013 09:12:04 +0200 |
| Subject: 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> |
| (cherry picked from commit 43387b37fa2d0f368142b8fa8c9440da92e5381b) |
| Signed-off-by: James Ausmus <james.ausmus@intel.com> |
| |
| Conflicts: |
| drivers/gpu/drm/exynos/exynos_drm_gem.c |
| (context changes) |
| drivers/gpu/drm/rcar-du/rcar_du_drv.c |
| (we don't have this driver in our tree) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/ast/ast_drv.c | 2 +- |
| drivers/gpu/drm/ast/ast_drv.h | 3 --- |
| drivers/gpu/drm/ast/ast_main.c | 7 ------- |
| drivers/gpu/drm/cirrus/cirrus_drv.c | 2 +- |
| drivers/gpu/drm/cirrus/cirrus_drv.h | 3 --- |
| drivers/gpu/drm/cirrus/cirrus_main.c | 7 ------- |
| drivers/gpu/drm/drm_gem.c | 14 ++++++++++++++ |
| drivers/gpu/drm/drm_gem_cma_helper.c | 10 ---------- |
| drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 +- |
| drivers/gpu/drm/exynos/exynos_drm_gem.c | 22 ---------------------- |
| drivers/gpu/drm/exynos/exynos_drm_gem.h | 9 --------- |
| drivers/gpu/drm/gma500/gem.c | 17 ----------------- |
| drivers/gpu/drm/gma500/psb_drv.c | 2 +- |
| drivers/gpu/drm/gma500/psb_drv.h | 2 -- |
| drivers/gpu/drm/i915/i915_drv.c | 2 +- |
| drivers/gpu/drm/i915/i915_drv.h | 2 -- |
| drivers/gpu/drm/i915/i915_gem.c | 7 ------- |
| drivers/gpu/drm/mgag200/mgag200_drv.c | 2 +- |
| drivers/gpu/drm/mgag200/mgag200_drv.h | 3 --- |
| drivers/gpu/drm/mgag200/mgag200_main.c | 7 ------- |
| drivers/gpu/drm/nouveau/nouveau_display.c | 7 ------- |
| drivers/gpu/drm/nouveau/nouveau_display.h | 2 -- |
| drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- |
| drivers/gpu/drm/omapdrm/omap_drv.c | 2 +- |
| drivers/gpu/drm/omapdrm/omap_drv.h | 2 -- |
| drivers/gpu/drm/omapdrm/omap_gem.c | 15 --------------- |
| drivers/gpu/drm/qxl/qxl_drv.c | 2 +- |
| drivers/gpu/drm/qxl/qxl_drv.h | 3 --- |
| drivers/gpu/drm/qxl/qxl_dumb.c | 7 ------- |
| drivers/gpu/drm/radeon/radeon.h | 3 --- |
| drivers/gpu/drm/radeon/radeon_drv.c | 5 +---- |
| drivers/gpu/drm/radeon/radeon_gem.c | 7 ------- |
| drivers/gpu/drm/shmobile/shmob_drm_drv.c | 2 +- |
| drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +- |
| drivers/gpu/drm/udl/udl_drv.c | 2 +- |
| drivers/gpu/drm/udl/udl_drv.h | 2 -- |
| drivers/gpu/drm/udl/udl_gem.c | 6 ------ |
| drivers/gpu/host1x/drm/drm.c | 2 +- |
| drivers/gpu/host1x/drm/gem.c | 6 ------ |
| drivers/gpu/host1x/drm/gem.h | 2 -- |
| drivers/staging/imx-drm/imx-drm-core.c | 2 +- |
| include/drm/drmP.h | 3 +++ |
| include/drm/drm_gem_cma_helper.h | 8 -------- |
| 43 files changed, 32 insertions(+), 187 deletions(-) |
| |
| --- a/drivers/gpu/drm/ast/ast_drv.c |
| +++ b/drivers/gpu/drm/ast/ast_drv.c |
| @@ -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, |
| |
| }; |
| |
| --- a/drivers/gpu/drm/ast/ast_drv.h |
| +++ b/drivers/gpu/drm/ast/ast_drv.h |
| @@ -323,9 +323,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); |
| --- a/drivers/gpu/drm/ast/ast_main.c |
| +++ b/drivers/gpu/drm/ast/ast_main.c |
| @@ -453,13 +453,6 @@ int ast_dumb_create(struct drm_file *fil |
| 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(); |
| --- a/drivers/gpu/drm/cirrus/cirrus_drv.c |
| +++ b/drivers/gpu/drm/cirrus/cirrus_drv.c |
| @@ -138,7 +138,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 const struct dev_pm_ops cirrus_pm_ops = { |
| --- a/drivers/gpu/drm/cirrus/cirrus_drv.h |
| +++ b/drivers/gpu/drm/cirrus/cirrus_drv.h |
| @@ -203,9 +203,6 @@ int cirrus_gem_create(struct drm_device |
| 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, |
| --- a/drivers/gpu/drm/cirrus/cirrus_main.c |
| +++ b/drivers/gpu/drm/cirrus/cirrus_main.c |
| @@ -255,13 +255,6 @@ int cirrus_dumb_create(struct drm_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(); |
| --- a/drivers/gpu/drm/drm_gem.c |
| +++ b/drivers/gpu/drm/drm_gem.c |
| @@ -244,6 +244,20 @@ drm_gem_handle_delete(struct drm_file *f |
| 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 |
| * will likely want to dereference the object afterwards. |
| --- a/drivers/gpu/drm/drm_gem_cma_helper.c |
| +++ b/drivers/gpu/drm/drm_gem_cma_helper.c |
| @@ -284,16 +284,6 @@ int drm_gem_cma_mmap(struct file *filp, |
| } |
| 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) |
| { |
| --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c |
| +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c |
| @@ -276,7 +276,7 @@ static struct drm_driver exynos_drm_driv |
| .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, |
| --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c |
| +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c |
| @@ -735,28 +735,6 @@ unlock: |
| return ret; |
| } |
| |
| -int exynos_drm_gem_dumb_destroy(struct drm_file *file_priv, |
| - struct drm_device *dev, |
| - unsigned int handle) |
| -{ |
| - int ret; |
| - |
| - DRM_DEBUG_KMS("%s\n", __FILE__); |
| - |
| - /* |
| - * 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; |
| --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h |
| +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h |
| @@ -151,15 +151,6 @@ int exynos_drm_gem_dumb_map_offset(struc |
| 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); |
| |
| --- a/drivers/gpu/drm/gma500/gem.c |
| +++ b/drivers/gpu/drm/gma500/gem.c |
| @@ -162,23 +162,6 @@ int psb_gem_dumb_create(struct drm_file |
| } |
| |
| /** |
| - * 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 |
| * @vmf: fault detail |
| --- a/drivers/gpu/drm/gma500/psb_drv.c |
| +++ b/drivers/gpu/drm/gma500/psb_drv.c |
| @@ -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, |
| --- a/drivers/gpu/drm/gma500/psb_drv.h |
| +++ b/drivers/gpu/drm/gma500/psb_drv.h |
| @@ -838,8 +838,6 @@ extern int psb_gem_get_aperture(struct d |
| 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); |
| --- a/drivers/gpu/drm/i915/i915_drv.c |
| +++ b/drivers/gpu/drm/i915/i915_drv.c |
| @@ -1038,7 +1038,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, |
| --- a/drivers/gpu/drm/i915/i915_drv.h |
| +++ b/drivers/gpu/drm/i915/i915_drv.h |
| @@ -1775,8 +1775,6 @@ int i915_gem_dumb_create(struct drm_file |
| 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. |
| */ |
| --- a/drivers/gpu/drm/i915/i915_gem.c |
| +++ b/drivers/gpu/drm/i915/i915_gem.c |
| @@ -245,13 +245,6 @@ i915_gem_dumb_create(struct drm_file *fi |
| 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. |
| */ |
| --- a/drivers/gpu/drm/mgag200/mgag200_drv.c |
| +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c |
| @@ -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 = { |
| --- a/drivers/gpu/drm/mgag200/mgag200_drv.h |
| +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h |
| @@ -248,9 +248,6 @@ int mgag200_gem_init_object(struct drm_g |
| 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, |
| --- a/drivers/gpu/drm/mgag200/mgag200_main.c |
| +++ b/drivers/gpu/drm/mgag200/mgag200_main.c |
| @@ -291,13 +291,6 @@ int mgag200_dumb_create(struct drm_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(); |
| --- a/drivers/gpu/drm/nouveau/nouveau_display.c |
| +++ b/drivers/gpu/drm/nouveau/nouveau_display.c |
| @@ -689,13 +689,6 @@ nouveau_display_dumb_create(struct drm_f |
| } |
| |
| 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, |
| uint32_t handle, uint64_t *poffset) |
| --- a/drivers/gpu/drm/nouveau/nouveau_display.h |
| +++ b/drivers/gpu/drm/nouveau/nouveau_display.h |
| @@ -68,8 +68,6 @@ int nouveau_display_dumb_create(struct |
| 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 *); |
| |
| --- a/drivers/gpu/drm/nouveau/nouveau_drm.c |
| +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c |
| @@ -717,7 +717,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, |
| --- a/drivers/gpu/drm/omapdrm/omap_drv.c |
| +++ b/drivers/gpu/drm/omapdrm/omap_drv.c |
| @@ -618,7 +618,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, |
| --- a/drivers/gpu/drm/omapdrm/omap_drv.h |
| +++ b/drivers/gpu/drm/omapdrm/omap_drv.h |
| @@ -224,8 +224,6 @@ int omap_gem_init_object(struct drm_gem_ |
| 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); |
| --- a/drivers/gpu/drm/omapdrm/omap_gem.c |
| +++ b/drivers/gpu/drm/omapdrm/omap_gem.c |
| @@ -629,21 +629,6 @@ int omap_gem_dumb_create(struct drm_file |
| } |
| |
| /** |
| - * 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 |
| * @dev: drm device |
| --- a/drivers/gpu/drm/qxl/qxl_drv.c |
| +++ b/drivers/gpu/drm/qxl/qxl_drv.c |
| @@ -99,7 +99,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, |
| --- a/drivers/gpu/drm/qxl/qxl_drv.h |
| +++ b/drivers/gpu/drm/qxl/qxl_drv.h |
| @@ -409,9 +409,6 @@ int qxl_bo_kmap(struct qxl_bo *bo, void |
| 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); |
| --- a/drivers/gpu/drm/qxl/qxl_dumb.c |
| +++ b/drivers/gpu/drm/qxl/qxl_dumb.c |
| @@ -68,13 +68,6 @@ int qxl_mode_dumb_create(struct drm_file |
| 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) |
| --- a/drivers/gpu/drm/radeon/radeon.h |
| +++ b/drivers/gpu/drm/radeon/radeon.h |
| @@ -444,9 +444,6 @@ int radeon_mode_dumb_create(struct drm_f |
| 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. |
| --- a/drivers/gpu/drm/radeon/radeon_drv.c |
| +++ b/drivers/gpu/drm/radeon/radeon_drv.c |
| @@ -119,9 +119,6 @@ int radeon_mode_dumb_mmap(struct drm_fil |
| 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, |
| @@ -414,7 +411,7 @@ static struct drm_driver kms_driver = { |
| .dma_ioctl = radeon_dma_ioctl_kms, |
| .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, |
| --- a/drivers/gpu/drm/radeon/radeon_gem.c |
| +++ b/drivers/gpu/drm/radeon/radeon_gem.c |
| @@ -570,13 +570,6 @@ int radeon_mode_dumb_create(struct drm_f |
| 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) |
| { |
| --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c |
| +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c |
| @@ -285,7 +285,7 @@ static struct drm_driver shmob_drm_drive |
| .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, |
| .fops = &shmob_drm_fops, |
| .name = "shmob-drm", |
| .desc = "Renesas SH Mobile DRM", |
| --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c |
| +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c |
| @@ -531,7 +531,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, |
| --- a/drivers/gpu/drm/udl/udl_drv.c |
| +++ b/drivers/gpu/drm/udl/udl_drv.c |
| @@ -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, |
| --- a/drivers/gpu/drm/udl/udl_drv.h |
| +++ b/drivers/gpu/drm/udl/udl_drv.h |
| @@ -114,8 +114,6 @@ int udl_dumb_create(struct drm_file *fil |
| 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); |
| --- a/drivers/gpu/drm/udl/udl_gem.c |
| +++ b/drivers/gpu/drm/udl/udl_gem.c |
| @@ -66,12 +66,6 @@ int udl_dumb_create(struct drm_file *fil |
| 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; |
| --- a/drivers/gpu/host1x/drm/drm.c |
| +++ b/drivers/gpu/host1x/drm/drm.c |
| @@ -625,7 +625,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), |
| --- a/drivers/gpu/host1x/drm/gem.c |
| +++ b/drivers/gpu/host1x/drm/gem.c |
| @@ -261,9 +261,3 @@ int tegra_drm_mmap(struct file *file, st |
| |
| 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); |
| -} |
| --- a/drivers/gpu/host1x/drm/gem.h |
| +++ b/drivers/gpu/host1x/drm/gem.h |
| @@ -49,8 +49,6 @@ int tegra_bo_dumb_create(struct drm_file |
| 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); |
| |
| --- a/drivers/staging/imx-drm/imx-drm-core.c |
| +++ b/drivers/staging/imx-drm/imx-drm-core.c |
| @@ -801,7 +801,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, |
| --- a/include/drm/drmP.h |
| +++ b/include/drm/drmP.h |
| @@ -1589,6 +1589,9 @@ extern int drm_prime_sg_to_page_addr_arr |
| 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); |
| --- a/include/drm/drm_gem_cma_helper.h |
| +++ b/include/drm/drm_gem_cma_helper.h |
| @@ -30,14 +30,6 @@ int drm_gem_cma_dumb_map_offset(struct d |
| /* 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); |