diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index 3b29ac5c18db..1c32b7070fed 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c @@ -91,13 +91,6 @@ struct drm_prime_attachment { enum dma_data_direction dir; }; -#ifdef CONFIG_ARCH_ROCKCHIP -struct drm_prime_callback_data { - struct drm_gem_object *obj; - struct sg_table *sgt; -}; -#endif - static int drm_prime_add_buf_handle(struct drm_prime_file_private *prime_fpriv, struct dma_buf *dma_buf, uint32_t handle) { @@ -685,25 +678,6 @@ out_unlock: } EXPORT_SYMBOL(drm_gem_prime_handle_to_fd); -#ifdef CONFIG_ARCH_ROCKCHIP -static void drm_gem_prime_dmabuf_release_callback(void *data) -{ - struct drm_prime_callback_data *cb_data = data; - - if (cb_data && cb_data->obj && cb_data->obj->import_attach) { - struct dma_buf_attachment *attach = cb_data->obj->import_attach; - struct sg_table *sgt = cb_data->sgt; - - if (sgt) - dma_buf_unmap_attachment(attach, sgt, - DMA_BIDIRECTIONAL); - dma_buf_detach(attach->dmabuf, attach); - drm_gem_object_put_unlocked(cb_data->obj); - kfree(cb_data); - } -} -#endif - /** * drm_gem_prime_mmap - PRIME mmap function for GEM drivers * @obj: GEM object @@ -758,9 +732,6 @@ struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev, struct dma_buf_attachment *attach; struct sg_table *sgt; struct drm_gem_object *obj; -#ifdef CONFIG_ARCH_ROCKCHIP - struct drm_prime_callback_data *cb_data = NULL; -#endif int ret; if (dma_buf->ops == &drm_gem_prime_dmabuf_ops) { @@ -775,15 +746,6 @@ struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev, } } -#ifdef CONFIG_ARCH_ROCKCHIP - cb_data = dma_buf_get_release_callback_data(dma_buf, - drm_gem_prime_dmabuf_release_callback); - if (cb_data && cb_data->obj && cb_data->obj->dev == dev) { - drm_gem_object_get(cb_data->obj); - return cb_data->obj; - } -#endif - if (!dev->driver->gem_prime_import_sg_table) return ERR_PTR(-EINVAL); @@ -793,14 +755,6 @@ struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev, get_dma_buf(dma_buf); -#ifdef CONFIG_ARCH_ROCKCHIP - cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL); - if (!cb_data) { - ret = -ENOMEM; - goto fail_detach; - } -#endif - sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL); if (IS_ERR(sgt)) { ret = PTR_ERR(sgt); @@ -815,23 +769,11 @@ struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev, obj->import_attach = attach; -#ifdef CONFIG_ARCH_ROCKCHIP - cb_data->obj = obj; - cb_data->sgt = sgt; - dma_buf_set_release_callback(dma_buf, - drm_gem_prime_dmabuf_release_callback, cb_data); - dma_buf_put(dma_buf); - drm_gem_object_get(obj); -#endif - return obj; fail_unmap: dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL); fail_detach: -#ifdef CONFIG_ARCH_ROCKCHIP - kfree(cb_data); -#endif dma_buf_detach(dma_buf, attach); dma_buf_put(dma_buf);