diff mbox

[PATCHv5,00/13] Integration of videobuf2 with dmabuf

Message ID CAO8GWq=3_nNi5Uu9DeyQcRfiG5a8jQg59yC_isCc_50TA+Nbdw@mail.gmail.com
State New
Headers show

Commit Message

Rob Clark April 24, 2012, 10:42 p.m. UTC
fwiw, I *finally* had time to rebase the omap4iss camera driver on
this.. I did run in to one issue, so I'd propose this change:

------

-	dma_sync_sg_for_cpu(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
+	if (!buf->db_attach)
+		dma_sync_sg_for_cpu(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
 }
------

the issue is that dma_sync_sg_for_xyz() blow up horribly when handed
something that is not really 'RAM'.  But OTOH, the exporter is taking
care of cache, etc, so these calls are not really required in the
dmabuf case.

Thoughts?

BR,
-R

On Fri, Apr 20, 2012 at 9:06 AM, Tomasz Stanislawski
<t.stanislaws@samsung.com> wrote:
> Hello everyone,
> This patchset adds support for DMABUF [2] importing to V4L2 stack.
> The support for DMABUF exporting was moved to separate patchset
> due to dependency on patches for DMA mapping redesign by
> Marek Szyprowski [4].
>
> v5:
> - removed change of importer/exporter behaviour
> - fixes vb2_dc_pages_to_sgt basing on Laurent's hints
> - changed pin/unpin words to lock/unlock in Doc
>
> v4:
> - rebased on mainline 3.4-rc2
> - included missing importing support for s5p-fimc and s5p-tv
> - added patch for changing map/unmap for importers
> - fixes to Documentation part
> - coding style fixes
> - pairing {map/unmap}_dmabuf in vb2-core
> - fixing variable types and semantic of arguments in videobufb2-dma-contig.c
>
> v3:
> - rebased on mainline 3.4-rc1
> - split 'code refactor' patch to multiple smaller patches
> - squashed fixes to Sumit's patches
> - patchset is no longer dependant on 'DMA mapping redesign'
> - separated path for handling IO and non-IO mappings
> - add documentation for DMABUF importing to V4L
> - removed all DMABUF exporter related code
> - removed usage of dma_get_pages extension
>
> v2:
> - extended VIDIOC_EXPBUF argument from integer memoffset to struct
>  v4l2_exportbuffer
> - added patch that breaks DMABUF spec on (un)map_atachment callcacks but allows
>  to work with existing implementation of DMABUF prime in DRM
> - all dma-contig code refactoring patches were squashed
> - bugfixes
>
> v1: List of changes since [1].
> - support for DMA api extension dma_get_pages, the function is used to retrieve
>  pages used to create DMA mapping.
> - small fixes/code cleanup to videobuf2
> - added prepare and finish callbacks to vb2 allocators, it is used keep
>  consistency between dma-cpu acess to the memory (by Marek Szyprowski)
> - support for exporting of DMABUF buffer in V4L2 and Videobuf2, originated from
>  [3].
> - support for dma-buf exporting in vb2-dma-contig allocator
> - support for DMABUF for s5p-tv and s5p-fimc (capture interface) drivers,
>  originated from [3]
> - changed handling for userptr buffers (by Marek Szyprowski, Andrzej
>  Pietrasiewicz)
> - let mmap method to use dma_mmap_writecombine call (by Marek Szyprowski)
>
> [1] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/42966/focus=42968
> [2] https://lkml.org/lkml/2011/12/26/29
> [3] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/36354/focus=36355
> [4] http://thread.gmane.org/gmane.linux.kernel.cross-arch/12819
>
> Andrzej Pietrasiewicz (1):
>  v4l: vb2-dma-contig: add support for scatterlist in userptr mode
>
> Laurent Pinchart (2):
>  v4l: vb2-dma-contig: Shorten vb2_dma_contig prefix to vb2_dc
>  v4l: vb2-dma-contig: Reorder functions
>
> Marek Szyprowski (2):
>  v4l: vb2: add prepare/finish callbacks to allocators
>  v4l: vb2-dma-contig: add prepare/finish to dma-contig allocator
>
> Sumit Semwal (4):
>  v4l: Add DMABUF as a memory type
>  v4l: vb2: add support for shared buffer (dma_buf)
>  v4l: vb: remove warnings about MEMORY_DMABUF
>  v4l: vb2-dma-contig: add support for dma_buf importing
>
> Tomasz Stanislawski (4):
>  Documentation: media: description of DMABUF importing in V4L2
>  v4l: vb2-dma-contig: Remove unneeded allocation context structure
>  v4l: s5p-tv: mixer: support for dmabuf importing
>  v4l: s5p-fimc: support for dmabuf importing
>
>  Documentation/DocBook/media/v4l/compat.xml         |    4 +
>  Documentation/DocBook/media/v4l/io.xml             |  179 +++++++
>  .../DocBook/media/v4l/vidioc-create-bufs.xml       |    1 +
>  Documentation/DocBook/media/v4l/vidioc-qbuf.xml    |   15 +
>  Documentation/DocBook/media/v4l/vidioc-reqbufs.xml |   47 +-
>  drivers/media/video/Kconfig                        |    1 +
>  drivers/media/video/s5p-fimc/fimc-capture.c        |    2 +-
>  drivers/media/video/s5p-tv/Kconfig                 |    1 +
>  drivers/media/video/s5p-tv/mixer_video.c           |    2 +-
>  drivers/media/video/videobuf-core.c                |    4 +
>  drivers/media/video/videobuf2-core.c               |  207 ++++++++-
>  drivers/media/video/videobuf2-dma-contig.c         |  529 +++++++++++++++++---
>  include/linux/videodev2.h                          |    7 +
>  include/media/videobuf2-core.h                     |   34 ++
>  14 files changed, 932 insertions(+), 101 deletions(-)
>
> --
> 1.7.5.4
>
>
> _______________________________________________
> Linaro-mm-sig mailing list
> Linaro-mm-sig@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-mm-sig
diff mbox

Patch

diff --git a/drivers/media/video/videobuf2-dma-contig.c
b/drivers/media/video/videobuf2-dma-contig.c
index 5cf3107..5114a51 100644
--- a/drivers/media/video/videobuf2-dma-contig.c
+++ b/drivers/media/video/videobuf2-dma-contig.c
@@ -161,7 +161,11 @@  static void vb2_dc_prepare(void *buf_priv)
 	if (!sgt)
 		return;

-	dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
+	if (!buf->db_attach)
+		dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
 }

 static void vb2_dc_finish(void *buf_priv)
@@ -172,7 +176,11 @@  static void vb2_dc_finish(void *buf_priv)
 	if (!sgt)
 		return;