From c5068a72e05490d472152a3038d2de50ece9862d Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Tue, 12 Jan 2021 14:41:56 +0800 Subject: [PATCH] Revert "media: videobuf2-dma-sg: support contiguous page by dma attrs" This reverts commit 46e7d9882b8b048ab0dc575b084cd56888e442e7. Change-Id: I8b7511cd20ae6a0b5cf853e1e07888ea55932bac Signed-off-by: Cai YiWei --- .../media/common/videobuf2/videobuf2-dma-sg.c | 39 +++---------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index 70c66f199bee..e9bfea986cc4 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -10,7 +10,6 @@ * the Free Software Foundation. */ -#include #include #include #include @@ -38,7 +37,6 @@ struct vb2_dma_sg_buf { struct page **pages; struct frame_vector *vec; int offset; - unsigned long attrs; enum dma_data_direction dma_dir; struct sg_table sg_table; /* @@ -98,23 +96,6 @@ static int vb2_dma_sg_alloc_compacted(struct vb2_dma_sg_buf *buf, return 0; } -static int vb2_dma_sg_alloc_contiguous(struct device *dev, - struct vb2_dma_sg_buf *buf, gfp_t gfp_flags) -{ - struct page *page; - unsigned int i; - - page = dma_alloc_from_contiguous(dev, buf->num_pages, - get_order(buf->size), gfp_flags & __GFP_NOWARN); - if (!page) - return -ENOMEM; - - for (i = 0; i < buf->num_pages; i++) - buf->pages[i] = page + i; - - return 0; -} - static void *vb2_dma_sg_alloc(struct device *dev, unsigned long dma_attrs, unsigned long size, enum dma_data_direction dma_dir, gfp_t gfp_flags) @@ -132,7 +113,6 @@ static void *vb2_dma_sg_alloc(struct device *dev, unsigned long dma_attrs, return ERR_PTR(-ENOMEM); buf->vaddr = NULL; - buf->attrs = dma_attrs; buf->dma_dir = dma_dir; buf->offset = 0; buf->size = size; @@ -145,10 +125,7 @@ static void *vb2_dma_sg_alloc(struct device *dev, unsigned long dma_attrs, if (!buf->pages) goto fail_pages_array_alloc; - if (dma_attrs & DMA_ATTR_FORCE_CONTIGUOUS) - ret = vb2_dma_sg_alloc_contiguous(dev, buf, gfp_flags); - else - ret = vb2_dma_sg_alloc_compacted(buf, gfp_flags); + ret = vb2_dma_sg_alloc_compacted(buf, gfp_flags); if (ret) goto fail_pages_alloc; @@ -185,11 +162,8 @@ fail_map: sg_free_table(buf->dma_sgt); fail_table_alloc: num_pages = buf->num_pages; - if (dma_attrs & DMA_ATTR_FORCE_CONTIGUOUS) - dma_release_from_contiguous(dev, buf->pages[0], num_pages); - else - while (num_pages--) - __free_page(buf->pages[num_pages]); + while (num_pages--) + __free_page(buf->pages[num_pages]); fail_pages_alloc: kvfree(buf->pages); fail_pages_array_alloc: @@ -211,11 +185,8 @@ static void vb2_dma_sg_put(void *buf_priv) if (buf->vaddr) vm_unmap_ram(buf->vaddr, buf->num_pages); sg_free_table(buf->dma_sgt); - if (buf->attrs & DMA_ATTR_FORCE_CONTIGUOUS) - dma_release_from_contiguous(buf->dev, buf->pages[0], i); - else - while (--i >= 0) - __free_page(buf->pages[i]); + while (--i >= 0) + __free_page(buf->pages[i]); kvfree(buf->pages); put_device(buf->dev); kfree(buf);