Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
- index 91e17ae..03a5b76 100644
- --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
- +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
- @@ -17,6 +17,7 @@
- #include <linux/component.h>
- #include <linux/of_platform.h>
- #include <drm/drm_of.h>
- +#include <drm/drm_gem_cma_helper.h>
- #include "etnaviv_cmdbuf.h"
- #include "etnaviv_drv.h"
- @@ -489,7 +490,7 @@ static struct drm_driver etnaviv_drm_driver = {
- DRIVER_RENDER,
- .open = etnaviv_open,
- .postclose = etnaviv_postclose,
- - .gem_free_object_unlocked = etnaviv_gem_free_object,
- + .gem_free_object_unlocked = drm_gem_cma_free_object,
- .gem_vm_ops = &vm_ops,
- .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
- .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
- diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.h b/drivers/gpu/drm/etnaviv/etnaviv_drv.h
- index 058389f..376bc41 100644
- --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.h
- +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.h
- @@ -89,7 +89,6 @@ void *etnaviv_gem_vmap(struct drm_gem_object *obj);
- int etnaviv_gem_cpu_prep(struct drm_gem_object *obj, u32 op,
- struct timespec *timeout);
- int etnaviv_gem_cpu_fini(struct drm_gem_object *obj);
- -void etnaviv_gem_free_object(struct drm_gem_object *obj);
- int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
- u32 size, u32 flags, u32 *handle);
- struct drm_gem_object *etnaviv_gem_new_locked(struct drm_device *dev,
- diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
- index fd56f92..dccb51a 100644
- --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
- +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
- @@ -544,38 +544,6 @@ static const struct etnaviv_gem_ops etnaviv_gem_shmem_ops = {
- .mmap = etnaviv_gem_mmap_obj,
- };
- -void etnaviv_gem_free_object(struct drm_gem_object *obj)
- -{
- - struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj);
- - struct etnaviv_vram_mapping *mapping, *tmp;
- -
- - /* object should not be active */
- - WARN_ON(is_active(etnaviv_obj));
- -
- - list_del(&etnaviv_obj->gem_node);
- -
- - list_for_each_entry_safe(mapping, tmp, &etnaviv_obj->vram_list,
- - obj_node) {
- - struct etnaviv_iommu *mmu = mapping->mmu;
- -
- - WARN_ON(mapping->use);
- -
- - if (mmu)
- - etnaviv_iommu_unmap_gem(mmu, mapping);
- -
- - list_del(&mapping->obj_node);
- - kfree(mapping);
- - }
- -
- - drm_gem_free_mmap_offset(obj);
- - etnaviv_obj->ops->release(etnaviv_obj);
- - if (etnaviv_obj->resv == &etnaviv_obj->_resv)
- - reservation_object_fini(&etnaviv_obj->_resv);
- - drm_gem_object_release(obj);
- -
- - kfree(etnaviv_obj);
- -}
- -
- int etnaviv_gem_obj_add(struct drm_device *dev, struct drm_gem_object *obj)
- {
- struct etnaviv_drm_private *priv = dev->dev_private;
- --
- 2.7.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement