All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Tomasz Stanislawski <t.stanislaws@samsung.com>,
	linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
	airlied@redhat.com, m.szyprowski@samsung.com,
	kyungmin.park@samsung.com, sumit.semwal@ti.com,
	daeinki@gmail.com, daniel.vetter@ffwll.ch, robdclark@gmail.com,
	pawel@osciak.com, linaro-mm-sig@lists.linaro.org,
	remi@remlab.net, subashrp@gmail.com, mchehab@redhat.com,
	g.liakhovetski@gmx.de, dmitriyz@google.com,
	s.nawrocki@samsung.com, k.debski@samsung.com
Subject: Re: [PATCHv8 18/26] v4l: add buffer exporting via dmabuf
Date: Thu, 23 Aug 2012 01:39:34 +0200	[thread overview]
Message-ID: <1482826.kal9EJjByd@avalon> (raw)
In-Reply-To: <201208221341.06056.hverkuil@xs4all.nl>

Hi Hans,

On Wednesday 22 August 2012 13:41:05 Hans Verkuil wrote:
> On Tue August 14 2012 17:34:48 Tomasz Stanislawski wrote:
> > This patch adds extension to V4L2 api. It allow to export a mmap buffer as
> > file descriptor. New ioctl VIDIOC_EXPBUF is added. It takes a buffer
> > offset used by mmap and return a file descriptor on success.
> > 
> > Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>

[snip]

> > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> > index 7f918dc..b5d058b 100644
> > --- a/include/linux/videodev2.h
> > +++ b/include/linux/videodev2.h
> > @@ -688,6 +688,31 @@ struct v4l2_buffer {
> > 
> >  #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE	0x0800
> >  #define V4L2_BUF_FLAG_NO_CACHE_CLEAN		0x1000
> > 
> > +/**
> > + * struct v4l2_exportbuffer - export of video buffer as DMABUF file
> > descriptor + *
> > + * @fd:		file descriptor associated with DMABUF (set by driver)
> > + * @mem_offset:	buffer memory offset as returned by VIDIOC_QUERYBUF in
> > struct + *		v4l2_buffer::m.offset (for single-plane formats) or
> > + *		v4l2_plane::m.offset (for multi-planar formats)
> > + * @flags:	flags for newly created file, currently only O_CLOEXEC is
> > + *		supported, refer to manual of open syscall for more details
> > + *
> > + * Contains data used for exporting a video buffer as DMABUF file
> > descriptor. + * The buffer is identified by a 'cookie' returned by
> > VIDIOC_QUERYBUF + * (identical to the cookie used to mmap() the buffer to
> > userspace). All + * reserved fields must be set to zero. The field
> > reserved0 is expected to + * become a structure 'type' allowing an
> > alternative layout of the structure + * content. Therefore this field
> > should not be used for any other extensions. + */
> > +struct v4l2_exportbuffer {
> > +	__u32		fd;
> > +	__u32		reserved0;
> > +	__u32		mem_offset;
> > +	__u32		flags;
> > +	__u32		reserved[12];
> > +};
> 
> OK, I realized that we also need a type field here: you need the type field
> (same as in v4l2_buffer) to know which queue the mem_offset refers to. For
> M2M devices you have two queues, so you need this information.
> 
> Is there any reason not to use __u32 memory instead of __u32 reserved0?
> I really dislike 'reserved0'. It's also very inconsistent with the other
> buffer ioctls which all have type+memory fields.

I'm concerned that we might need to export buffers in the future based on 
something else than the memory type. That's probably an irrational fear 
though.

> Regarding mem_offset: I would prefer a union (possibly anonymous):
> 
>         union {
>                 __u32           mem_offset;
>                 unsigned long   reserved;
>         } m;
> 
> Again, it's more consistent with the existing buffer ioctls, and it prepares
> the API for future pointer values. 'reserved' in the union above could even
> safely be renamed to userptr, even though userptr isn't supported at the
> moment.

Once again I would really want to see compeling use cases before we export a 
userptr buffer as a dmabuf object. As Mauro previously stated, userptr for 
buffer sharing was a hack in the first place (although a pretty successful one 
so far).

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2012-08-22 23:39 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-14 15:34 [PATCHv8 00/26] Integration of videobuf2 with DMABUF Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 01/26] v4l: Add DMABUF as a memory type Tomasz Stanislawski
2012-08-22 10:27   ` Hans Verkuil
2012-08-22 12:09     ` Tomasz Stanislawski
2012-08-22 12:21       ` Hans Verkuil
2012-08-14 15:34 ` [PATCHv8 02/26] Documentation: media: description of DMABUF importing in V4L2 Tomasz Stanislawski
2012-08-22 10:47   ` Hans Verkuil
2012-09-24 12:17     ` Tomasz Stanislawski
2012-09-25 10:48       ` Hans Verkuil
2012-08-14 15:34 ` [PATCHv8 03/26] v4l: vb2: add support for shared buffer (dma_buf) Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 04/26] v4l: vb: remove warnings about MEMORY_DMABUF Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 05/26] v4l: vb2-dma-contig: Shorten vb2_dma_contig prefix to vb2_dc Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 06/26] v4l: vb2-dma-contig: remove reference of alloc_ctx from a buffer Tomasz Stanislawski
2012-08-15 18:24   ` Laurent Pinchart
2012-08-14 15:34 ` [PATCHv8 07/26] v4l: vb2-dma-contig: Reorder functions Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 08/26] v4l: vb2-dma-contig: add support for scatterlist in userptr mode Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 09/26] v4l: vb2: add prepare/finish callbacks to allocators Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 10/26] v4l: vb2-dma-contig: add prepare/finish to dma-contig allocator Tomasz Stanislawski
2012-08-15 18:35   ` Laurent Pinchart
2012-08-15 18:39     ` [Linaro-mm-sig] " Laurent Pinchart
2012-08-14 15:34 ` [PATCHv8 11/26] v4l: vb2-dma-contig: add support for dma_buf importing Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 12/26] v4l: vb2-vmalloc: add support for dmabuf importing Tomasz Stanislawski
2012-08-15 18:39   ` Laurent Pinchart
2012-08-14 15:34 ` [PATCHv8 13/26] v4l: vivi: " Tomasz Stanislawski
2012-08-22 10:56   ` Hans Verkuil
2012-08-22 11:03     ` Laurent Pinchart
2012-08-22 11:47     ` Hans Verkuil
2012-09-25 14:41       ` Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 14/26] v4l: s5p-tv: mixer: " Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 15/26] v4l: s5p-fimc: " Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 16/26] v4l: vb2-dma-contig: let mmap method to use dma_mmap_coherent call Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 17/26] Documentation: media: description of DMABUF exporting in V4L2 Tomasz Stanislawski
2012-08-22 11:23   ` Hans Verkuil
2012-08-14 15:34 ` [PATCHv8 18/26] v4l: add buffer exporting via dmabuf Tomasz Stanislawski
2012-08-15 19:08   ` Laurent Pinchart
2012-08-22 11:41   ` Hans Verkuil
2012-08-22 23:39     ` Laurent Pinchart [this message]
2012-08-23  6:50       ` Hans Verkuil
2012-09-25 16:30     ` Tomasz Stanislawski
2012-09-26  6:39       ` Hans Verkuil
2012-09-26  9:55         ` Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 19/26] v4l: vb2: " Tomasz Stanislawski
2012-08-22 11:43   ` Hans Verkuil
2012-08-14 15:34 ` [PATCHv8 20/26] v4l: vb2-dma-contig: add support for DMABUF exporting Tomasz Stanislawski
2012-08-21 10:03   ` Laurent Pinchart
2012-08-21 13:47     ` Tomasz Stanislawski
2012-08-21 14:07       ` Laurent Pinchart
2012-08-14 15:34 ` [PATCHv8 21/26] v4l: vb2-dma-contig: add reference counting for a device from allocator context Tomasz Stanislawski
2012-08-15 20:04   ` Laurent Pinchart
2012-09-27 15:19     ` Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 22/26] media: vb2: fail if user ptr buffer is not correctly aligned Tomasz Stanislawski
2012-08-15 20:20   ` Laurent Pinchart
2012-08-14 15:34 ` [PATCHv8 23/26] v4l: vb2: add support for DMA_ATTR_NO_KERNEL_MAPPING Tomasz Stanislawski
2012-08-15 20:44   ` Laurent Pinchart
2012-08-22 11:46   ` Hans Verkuil
2012-08-14 15:34 ` [PATCHv8 24/26] v4l: s5p-fimc: support for dmabuf exporting Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 25/26] v4l: s5p-tv: mixer: " Tomasz Stanislawski
2012-08-14 15:34 ` [PATCHv8 26/26] v4l: s5p-mfc: " Tomasz Stanislawski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1482826.kal9EJjByd@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=airlied@redhat.com \
    --cc=daeinki@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dmitriyz@google.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=hverkuil@xs4all.nl \
    --cc=k.debski@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@redhat.com \
    --cc=pawel@osciak.com \
    --cc=remi@remlab.net \
    --cc=robdclark@gmail.com \
    --cc=s.nawrocki@samsung.com \
    --cc=subashrp@gmail.com \
    --cc=sumit.semwal@ti.com \
    --cc=t.stanislaws@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.