Hi Marek~ 

Marek Szyprowski wrote:
> Sent: Wednesday, November 17, 2010 5:40 PM
> To: linux-media@vger.kernel.org
> Cc: m.szyprow...@samsung.com; pa...@osciak.com; kyungmin.p...@samsung.com
> Subject: [PATCH 4/7] v4l: videobuf2: add DMA coherent allocator
> 
> From: Pawel Osciak <p.osc...@samsung.com>
> 
> Add an implementation of DMA coherent memory allocator and handling
> routines for videobuf2, implemented on top of dma_alloc_coherent() call.
> 
> Signed-off-by: Pawel Osciak <p.osc...@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
> Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com>
> CC: Pawel Osciak <pa...@osciak.com>
> ---
>  drivers/media/video/Kconfig                  |    5 +
>  drivers/media/video/Makefile                 |    1 +
>  drivers/media/video/videobuf2-dma-coherent.c |  208
> ++++++++++++++++++++++++++
>  include/media/videobuf2-dma-coherent.h       |   27 ++++
>  4 files changed, 241 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/media/video/videobuf2-dma-coherent.c
>  create mode 100644 include/media/videobuf2-dma-coherent.h
> 
> diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> index 9351423..e7752ee1 100644
> --- a/drivers/media/video/Kconfig
> +++ b/drivers/media/video/Kconfig
> @@ -55,6 +55,11 @@ config VIDEOBUF2_CORE
>  config VIDEOBUF2_MEMOPS
>       tristate
> 
> +config VIDEOBUF2_DMA_COHERENT
> +     select VIDEOBUF2_CORE
> +     select VIDEOBUF2_MEMOPS
> +     tristate
> +
>  config VIDEOBUF2_VMALLOC
>       select VIDEOBUF2_CORE
>       select VIDEOBUF2_MEMOPS
> diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
> index 538bee9..baa74e7 100644
> --- a/drivers/media/video/Makefile
> +++ b/drivers/media/video/Makefile
> @@ -117,6 +117,7 @@ obj-$(CONFIG_VIDEO_BTCX)  += btcx-risc.o
>  obj-$(CONFIG_VIDEOBUF2_CORE)         += videobuf2-core.o
>  obj-$(CONFIG_VIDEOBUF2_MEMOPS)               += videobuf2-memops.o
>  obj-$(CONFIG_VIDEOBUF2_VMALLOC)              += videobuf2-vmalloc.o
> +obj-$(CONFIG_VIDEOBUF2_DMA_COHERENT) += videobuf2-dma_coherent.o
> 
>  obj-$(CONFIG_V4L2_MEM2MEM_DEV) += v4l2-mem2mem.o
> 
> diff --git a/drivers/media/video/videobuf2-dma-coherent.c
> b/drivers/media/video/videobuf2-dma-coherent.c
> new file mode 100644
> index 0000000..761f366
> --- /dev/null
> +++ b/drivers/media/video/videobuf2-dma-coherent.c
> @@ -0,0 +1,208 @@
> +/*
> + * videobuf2-dma-coherent.c - DMA coherent memory allocator for videobuf2
> + *
> + * Copyright (C) 2010 Samsung Electronics
> + *
> + * Author: Pawel Osciak <p.osc...@samsung.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/dma-mapping.h>
> +
> +#include <media/videobuf2-core.h>
> +#include <media/videobuf2-memops.h>
> +
> +struct vb2_dc_conf {
> +     struct vb2_alloc_ctx    alloc_ctx;
> +     struct device           *dev;
> +};

(snip)

> +static void vb2_dma_coherent_put_userptr(void *mem_priv)
> +{
> +     struct vb2_dc_buf *buf = mem_priv;
> +
> +     if (!buf)
> +             return;
> +
> +     vb2_put_userptr(buf->vma);
> +     kfree(buf);
> +}
> +
> +const struct vb2_mem_ops vb2_dma_coherent_ops = {
> +     .alloc          = vb2_dma_coherent_alloc,
> +     .put            = vb2_dma_coherent_put,
> +     .paddr          = vb2_dma_coherent_paddr,

The "paddr" is not exist in vb2_mem_ops after [PATCH v4 xxx] lists.
I think you should fix from paddr to cookie like CMA allocator.

> +     .mmap           = vb2_dma_coherent_mmap,
> +     .get_userptr    = vb2_dma_coherent_get_userptr,
> +     .put_userptr    = vb2_dma_coherent_put_userptr,
> +     .num_users      = vb2_dma_coherent_num_users,
> +};
> +

(snip)

> --
> 1.7.1.569.g6f426
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to