[PATCH 07/10] v4l: vb2: remove dma-contig allocator
This is temporary patch. The dma-contig changes were significant and the difference patch would be very difficult to read. Signed-off-by: Tomasz Stanislawski t.stanisl...@samsung.com Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com --- drivers/media/video/videobuf2-dma-contig.c | 308 1 files changed, 0 insertions(+), 308 deletions(-) delete mode 100644 drivers/media/video/videobuf2-dma-contig.c diff --git a/drivers/media/video/videobuf2-dma-contig.c b/drivers/media/video/videobuf2-dma-contig.c deleted file mode 100644 index ea2699f..000 --- a/drivers/media/video/videobuf2-dma-contig.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * videobuf2-dma-contig.c - DMA contig memory allocator for videobuf2 - * - * Copyright (C) 2010 Samsung Electronics - * - * Author: Pawel Osciak pa...@osciak.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation. - */ - -#include linux/module.h -#include linux/slab.h -#include linux/dma-mapping.h -#include linux/scatterlist.h -#include linux/dma-buf.h - -#include media/videobuf2-core.h -#include media/videobuf2-memops.h - -struct vb2_dc_conf { - struct device *dev; -}; - -struct vb2_dc_buf { - struct vb2_dc_conf *conf; - void*vaddr; - dma_addr_t dma_addr; - unsigned long size; - struct vm_area_struct *vma; - struct dma_buf_attachment *db_attach; - atomic_trefcount; - struct vb2_vmarea_handler handler; -}; - -static void vb2_dma_contig_put(void *buf_priv); - -static void *vb2_dma_contig_alloc(void *alloc_ctx, unsigned long size) -{ - struct vb2_dc_conf *conf = alloc_ctx; - struct vb2_dc_buf *buf; - /* TODO: add db_attach processing while adding DMABUF as exporter */ - - buf = kzalloc(sizeof *buf, GFP_KERNEL); - if (!buf) - return ERR_PTR(-ENOMEM); - - buf-vaddr = dma_alloc_coherent(conf-dev, size, buf-dma_addr, - GFP_KERNEL); - if (!buf-vaddr) { - dev_err(conf-dev, dma_alloc_coherent of size %ld failed\n, - size); - kfree(buf); - return ERR_PTR(-ENOMEM); - } - - buf-conf = conf; - buf-size = size; - - buf-handler.refcount = buf-refcount; - buf-handler.put = vb2_dma_contig_put; - buf-handler.arg = buf; - - atomic_inc(buf-refcount); - - return buf; -} - -static void vb2_dma_contig_put(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - if (atomic_dec_and_test(buf-refcount)) { - dma_free_coherent(buf-conf-dev, buf-size, buf-vaddr, - buf-dma_addr); - kfree(buf); - } -} - -static void *vb2_dma_contig_cookie(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - return buf-dma_addr; -} - -static void *vb2_dma_contig_vaddr(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - if (!buf) - return 0; - - return buf-vaddr; -} - -static unsigned int vb2_dma_contig_num_users(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - return atomic_read(buf-refcount); -} - -static int vb2_dma_contig_mmap(void *buf_priv, struct vm_area_struct *vma) -{ - struct vb2_dc_buf *buf = buf_priv; - - if (!buf) { - printk(KERN_ERR No buffer to map\n); - return -EINVAL; - } - - return vb2_mmap_pfn_range(vma, buf-dma_addr, buf-size, - vb2_common_vm_ops, buf-handler); -} - -static void *vb2_dma_contig_get_userptr(void *alloc_ctx, unsigned long vaddr, - unsigned long size, int write) -{ - struct vb2_dc_buf *buf; - struct vm_area_struct *vma; - dma_addr_t dma_addr = 0; - int ret; - - buf = kzalloc(sizeof *buf, GFP_KERNEL); - if (!buf) - return ERR_PTR(-ENOMEM); - - ret = vb2_get_contig_userptr(vaddr, size, vma, dma_addr); - if (ret) { - printk(KERN_ERR Failed acquiring VMA for vaddr 0x%08lx\n, - vaddr); - kfree(buf); - return ERR_PTR(ret); - } - - buf-size = size; - buf-dma_addr = dma_addr; - buf-vma = vma; - - return buf; -} - -static void vb2_dma_contig_put_userptr(void *mem_priv) -{ - struct vb2_dc_buf *buf = mem_priv; - - if (!buf) - return; - - vb2_put_vma(buf-vma); - kfree(buf); -} - -static int vb2_dma_contig_map_dmabuf(void *mem_priv, - enum dma_data_direction direction) -{ - struct vb2_dc_buf *buf = mem_priv; - struct dma_buf
Re: [PATCH 07/10] v4l: vb2: remove dma-contig allocator
Em 23-01-2012 11:51, Tomasz Stanislawski escreveu: This is temporary patch. The dma-contig changes were significant and the difference patch would be very difficult to read. NACK. This breaks git bisect. Signed-off-by: Tomasz Stanislawski t.stanisl...@samsung.com Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com --- drivers/media/video/videobuf2-dma-contig.c | 308 1 files changed, 0 insertions(+), 308 deletions(-) delete mode 100644 drivers/media/video/videobuf2-dma-contig.c diff --git a/drivers/media/video/videobuf2-dma-contig.c b/drivers/media/video/videobuf2-dma-contig.c deleted file mode 100644 index ea2699f..000 --- a/drivers/media/video/videobuf2-dma-contig.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * videobuf2-dma-contig.c - DMA contig memory allocator for videobuf2 - * - * Copyright (C) 2010 Samsung Electronics - * - * Author: Pawel Osciak pa...@osciak.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation. - */ - -#include linux/module.h -#include linux/slab.h -#include linux/dma-mapping.h -#include linux/scatterlist.h -#include linux/dma-buf.h - -#include media/videobuf2-core.h -#include media/videobuf2-memops.h - -struct vb2_dc_conf { - struct device *dev; -}; - -struct vb2_dc_buf { - struct vb2_dc_conf *conf; - void*vaddr; - dma_addr_t dma_addr; - unsigned long size; - struct vm_area_struct *vma; - struct dma_buf_attachment *db_attach; - atomic_trefcount; - struct vb2_vmarea_handler handler; -}; - -static void vb2_dma_contig_put(void *buf_priv); - -static void *vb2_dma_contig_alloc(void *alloc_ctx, unsigned long size) -{ - struct vb2_dc_conf *conf = alloc_ctx; - struct vb2_dc_buf *buf; - /* TODO: add db_attach processing while adding DMABUF as exporter */ - - buf = kzalloc(sizeof *buf, GFP_KERNEL); - if (!buf) - return ERR_PTR(-ENOMEM); - - buf-vaddr = dma_alloc_coherent(conf-dev, size, buf-dma_addr, - GFP_KERNEL); - if (!buf-vaddr) { - dev_err(conf-dev, dma_alloc_coherent of size %ld failed\n, - size); - kfree(buf); - return ERR_PTR(-ENOMEM); - } - - buf-conf = conf; - buf-size = size; - - buf-handler.refcount = buf-refcount; - buf-handler.put = vb2_dma_contig_put; - buf-handler.arg = buf; - - atomic_inc(buf-refcount); - - return buf; -} - -static void vb2_dma_contig_put(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - if (atomic_dec_and_test(buf-refcount)) { - dma_free_coherent(buf-conf-dev, buf-size, buf-vaddr, - buf-dma_addr); - kfree(buf); - } -} - -static void *vb2_dma_contig_cookie(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - return buf-dma_addr; -} - -static void *vb2_dma_contig_vaddr(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - if (!buf) - return 0; - - return buf-vaddr; -} - -static unsigned int vb2_dma_contig_num_users(void *buf_priv) -{ - struct vb2_dc_buf *buf = buf_priv; - - return atomic_read(buf-refcount); -} - -static int vb2_dma_contig_mmap(void *buf_priv, struct vm_area_struct *vma) -{ - struct vb2_dc_buf *buf = buf_priv; - - if (!buf) { - printk(KERN_ERR No buffer to map\n); - return -EINVAL; - } - - return vb2_mmap_pfn_range(vma, buf-dma_addr, buf-size, - vb2_common_vm_ops, buf-handler); -} - -static void *vb2_dma_contig_get_userptr(void *alloc_ctx, unsigned long vaddr, - unsigned long size, int write) -{ - struct vb2_dc_buf *buf; - struct vm_area_struct *vma; - dma_addr_t dma_addr = 0; - int ret; - - buf = kzalloc(sizeof *buf, GFP_KERNEL); - if (!buf) - return ERR_PTR(-ENOMEM); - - ret = vb2_get_contig_userptr(vaddr, size, vma, dma_addr); - if (ret) { - printk(KERN_ERR Failed acquiring VMA for vaddr 0x%08lx\n, - vaddr); - kfree(buf); - return ERR_PTR(ret); - } - - buf-size = size; - buf-dma_addr = dma_addr; - buf-vma = vma; - - return buf; -} - -static void vb2_dma_contig_put_userptr(void *mem_priv) -{ - struct vb2_dc_buf *buf = mem_priv; - - if (!buf) - return; - - vb2_put_vma(buf-vma); - kfree(buf); -} - -static int vb2_dma_contig_map_dmabuf(void *mem_priv, -