drm/exynos: use directly DMA mapping APIs on g2d
authorJoonyoung Shim <jy0922.shim@samsung.com>
Fri, 22 Apr 2016 07:34:07 +0000 (16:34 +0900)
committerInki Dae <daeinki@gmail.com>
Tue, 10 May 2016 14:11:44 +0000 (23:11 +0900)
There is no reason to be wapper functions to use DMA mapping APIs. Use
directly DMA mapping APIs and remove the wapper functions.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_g2d.c
drivers/gpu/drm/exynos/exynos_drm_gem.c
drivers/gpu/drm/exynos/exynos_drm_gem.h

index 193d3602dffbcccadc2f5994cb48b3a249e2d693..493552368295288c091dff811ab02c7939dac2e0 100644 (file)
@@ -383,8 +383,8 @@ static void g2d_userptr_put_dma_addr(struct drm_device *drm_dev,
                return;
 
 out:
-       exynos_gem_unmap_sgt_from_dma(drm_dev, g2d_userptr->sgt,
-                                       DMA_BIDIRECTIONAL);
+       dma_unmap_sg(to_dma_dev(drm_dev), g2d_userptr->sgt->sgl,
+                       g2d_userptr->sgt->nents, DMA_BIDIRECTIONAL);
 
        pages = frame_vector_pages(g2d_userptr->vec);
        if (!IS_ERR(pages)) {
@@ -501,10 +501,10 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
 
        g2d_userptr->sgt = sgt;
 
-       ret = exynos_gem_map_sgt_with_dma(drm_dev, g2d_userptr->sgt,
-                                               DMA_BIDIRECTIONAL);
-       if (ret < 0) {
+       if (!dma_map_sg(to_dma_dev(drm_dev), sgt->sgl, sgt->nents,
+                               DMA_BIDIRECTIONAL)) {
                DRM_ERROR("failed to map sgt with dma region.\n");
+               ret = -ENOMEM;
                goto err_sg_free_table;
        }
 
index 6c83884f1fe6ba6f2b3ed715efa159c65a835b8a..72d9414bd944e4919b530e42b57e6d66cd9418f6 100644 (file)
@@ -378,28 +378,6 @@ int exynos_drm_gem_get_ioctl(struct drm_device *dev, void *data,
        return 0;
 }
 
-int exynos_gem_map_sgt_with_dma(struct drm_device *drm_dev,
-                               struct sg_table *sgt,
-                               enum dma_data_direction dir)
-{
-       int nents;
-
-       nents = dma_map_sg(to_dma_dev(drm_dev), sgt->sgl, sgt->nents, dir);
-       if (!nents) {
-               DRM_ERROR("failed to map sgl with dma.\n");
-               return nents;
-       }
-
-       return 0;
-}
-
-void exynos_gem_unmap_sgt_from_dma(struct drm_device *drm_dev,
-                               struct sg_table *sgt,
-                               enum dma_data_direction dir)
-{
-       dma_unmap_sg(to_dma_dev(drm_dev), sgt->sgl, sgt->nents, dir);
-}
-
 void exynos_drm_gem_free_object(struct drm_gem_object *obj)
 {
        exynos_drm_gem_destroy(to_exynos_gem(obj));
index 895125431227e8d115580df6d5efdb1a5ec84e5e..78100742281d44c6a11ab64ddb7f090361924a30 100644 (file)
@@ -121,16 +121,6 @@ int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
 /* set vm_flags and we can change the vm attribute to other one at here. */
 int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
 
-/* map sgt with dma region. */
-int exynos_gem_map_sgt_with_dma(struct drm_device *drm_dev,
-                               struct sg_table *sgt,
-                               enum dma_data_direction dir);
-
-/* unmap sgt from dma region. */
-void exynos_gem_unmap_sgt_from_dma(struct drm_device *drm_dev,
-                               struct sg_table *sgt,
-                               enum dma_data_direction dir);
-
 /* low-level interface prime helpers */
 struct sg_table *exynos_drm_gem_prime_get_sg_table(struct drm_gem_object *obj);
 struct drm_gem_object *