From ea1d09a62d0e993b8848489c4c1869505185e133 Mon Sep 17 00:00:00 2001 From: Liviu Dudau Date: Wed, 18 Dec 2013 16:13:02 +0000 Subject: [PATCH] drm: Replace calls to dma_{alloc,free}_writecombine with dma_{alloc,free}_attrs. Only two platforms define the dma_{alloc,free}_writecombine functions, and those are mostly wrappers around dma_{alloc,free}_attrs with the correct DMA_ATTRS set for the relevant parameter. Use the base functions directly, to avoid adding more per-arch function definitions. Signed-off-by: Liviu Dudau --- drivers/gpu/drm/drm_gem_cma_helper.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c index 05c97c5..68eda58 100644 --- a/drivers/gpu/drm/drm_gem_cma_helper.c +++ b/drivers/gpu/drm/drm_gem_cma_helper.c @@ -80,6 +80,9 @@ struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, { struct drm_gem_cma_object *cma_obj; int ret; + DEFINE_DMA_ATTRS(attrs); + + dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs); size = round_up(size, PAGE_SIZE); @@ -87,8 +90,8 @@ struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, if (IS_ERR(cma_obj)) return cma_obj; - cma_obj->vaddr = dma_alloc_writecombine(drm->dev, size, - &cma_obj->paddr, GFP_KERNEL | __GFP_NOWARN); + cma_obj->vaddr = dma_alloc_attrs(drm->dev, size, + &cma_obj->paddr, GFP_KERNEL | __GFP_NOWARN, &attrs); if (!cma_obj->vaddr) { dev_err(drm->dev, "failed to allocate buffer with size %d\n", size); @@ -152,14 +155,17 @@ err_handle_create: void drm_gem_cma_free_object(struct drm_gem_object *gem_obj) { struct drm_gem_cma_object *cma_obj; + DEFINE_DMA_ATTRS(attrs); + + dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs); drm_gem_free_mmap_offset(gem_obj); cma_obj = to_drm_gem_cma_obj(gem_obj); if (cma_obj->vaddr) { - dma_free_writecombine(gem_obj->dev->dev, cma_obj->base.size, - cma_obj->vaddr, cma_obj->paddr); + dma_free_attrs(gem_obj->dev->dev, cma_obj->base.size, + cma_obj->vaddr, cma_obj->paddr, &attrs); } else if (gem_obj->import_attach) { drm_prime_gem_destroy(gem_obj, cma_obj->sgt); } -- 2.7.4