All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: 'Laurent Pinchart' <laurent.pinchart@ideasonboard.com>,
	Tomasz Stanislawski <t.stanislaws@samsung.com>,
	'Sumit Semwal' <sumit.semwal@linaro.org>,
	'Pawel Osciak' <pawel@osciak.com>,
	'Sumit Semwal' <sumit.semwal@ti.com>,
	linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org,
	arnd@arndb.de, jesse.barker@linaro.org, rob@ti.com,
	daniel@ffwll.ch, patches@linaro.org
Subject: Re: [RFCv1 2/4] v4l:vb2: add support for shared buffer (dma_buf)
Date: Mon, 23 Jan 2012 10:40:07 +0100	[thread overview]
Message-ID: <20120123094007.GA5998@phenom.ffwll.local> (raw)
In-Reply-To: <000601ccd9ae$5bd5fff0$1381ffd0$%szyprowski@samsung.com>

On Mon, Jan 23, 2012 at 10:06:57AM +0100, Marek Szyprowski wrote:
> Hello,
> 
> On Friday, January 20, 2012 5:29 PM Laurent Pinchart wrote:
> 
> > On Friday 20 January 2012 17:20:22 Tomasz Stanislawski wrote:
> > > >> IMO, One way to do this is adding field 'struct device *dev' to struct
> > > >> vb2_queue. This field should be filled by a driver prior to calling
> > > >> vb2_queue_init.
> > > >
> > > > I haven't looked into the details, but that sounds good to me. Do we have
> > > > use cases where a queue is allocated before knowing which physical
> > > > device it will be used for ?
> > >
> > > I don't think so. In case of S5P drivers, vb2_queue_init is called while
> > > opening /dev/videoX.
> > >
> > > BTW. This struct device may help vb2 to produce logs with more
> > > descriptive client annotation.
> > >
> > > What happens if such a device is NULL. It would happen for vmalloc
> > > allocator used by VIVI?
> > 
> > Good question. Should dma-buf accept NULL devices ? Or should vivi pass its
> > V4L2 device to vb2 ?
> 
> I assume you suggested using struct video_device->dev entry in such case. 
> It will not work. DMA-mapping API requires some parameters to be set for the 
> client device, like for example dma mask. struct video_device contains only an
> artificial struct device entry, which has no relation to any physical device 
> and cannot be used for calling DMA-mapping functions.
> 
> Performing dma_map_* operations with such artificial struct device doesn't make
> any sense. It also slows down things significantly due to cache flushing 
> (forced by dma-mapping) which should be avoided if the buffer is accessed only 
> with CPU (like it is done by vb2-vmalloc style drivers).
> 
> IMHO this case perfectly shows the design mistake that have been made. The
> current version simply tries to do too much. 

Nope, the current dma_buf does too little. Atm it's simple not useable for
drivers that need cpu access, at least not if you're willing to resort to
ugly an non-portable tricks like prime.

We've discussed this quite a bit and decided that solving cpu access and
coherency with n other devices involved is too much v1. It looks like we
need to add that extension rather sooner than later.
-Daniel
-- 
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48

  reply	other threads:[~2012-01-23  9:40 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-05 10:41 [RFCv1 0/4] v4l: DMA buffer sharing support as a user Sumit Semwal
2012-01-05 10:41 ` [RFCv1 1/4] v4l: Add DMABUF as a memory type Sumit Semwal
2012-01-05 10:41 ` [RFCv1 2/4] v4l:vb2: add support for shared buffer (dma_buf) Sumit Semwal
2012-01-14 20:38   ` [Linaro-mm-sig] " Sakari Ailus
     [not found]     ` <CAB2ybb83ub=A45-m6o+RXqFOTUmXCgeFqs03WZDHeWeLe2+29w@mail.gmail.com>
2012-01-16  5:35       ` Semwal, Sumit
2012-01-20 15:04       ` Laurent Pinchart
2012-01-19 19:07   ` Pawel Osciak
2012-01-20 10:41     ` Sumit Semwal
2012-01-20 10:58       ` Tomasz Stanislawski
2012-01-20 15:12         ` Laurent Pinchart
2012-01-20 15:53           ` Tomasz Stanislawski
2012-01-20 16:11             ` Laurent Pinchart
2012-01-20 16:20               ` Tomasz Stanislawski
2012-01-20 16:28                 ` Laurent Pinchart
2012-01-23  9:06                   ` Marek Szyprowski
2012-01-23  9:40                     ` Daniel Vetter [this message]
2012-01-23  9:45                       ` Daniel Vetter
2012-01-23  9:48                     ` Laurent Pinchart
2012-01-23 10:35                       ` Daniel Vetter
2012-01-23 10:54                         ` Laurent Pinchart
2012-01-24  0:26                           ` Clark, Rob
2012-01-24  9:34                             ` Laurent Pinchart
2012-01-24 10:52                               ` Daniel Vetter
2012-01-24 13:03                           ` Daniel Vetter
2012-01-25  8:09                             ` Daniel Vetter
2012-01-30 14:44                             ` Laurent Pinchart
2012-01-30 16:29                               ` Daniel Vetter
2012-01-25 23:28                         ` Sakari Ailus
2012-01-26 11:27                           ` Daniel Vetter
2012-01-29 11:03                             ` Sakari Ailus
2012-01-29 13:03                               ` Daniel Vetter
2012-01-30 14:33                                 ` Laurent Pinchart
2012-01-30 22:01                                 ` Sakari Ailus
2012-01-31 15:38                                   ` Clark, Rob
2012-02-02 10:19                                     ` Laurent Pinchart
2012-02-02 14:01                                       ` Clark, Rob
2012-02-02 14:40                                         ` Sumit Semwal
2012-02-02 20:23                                       ` Daniel Vetter
2012-02-02 20:49                                         ` Clark, Rob
2012-02-04 11:43                                     ` Sakari Ailus
2012-02-05 15:08                                       ` Clark, Rob
2012-01-20 14:55   ` [Linaro-mm-sig] " Laurent Pinchart
2012-01-05 10:41 ` [RFCv1 3/4] v4l:vb: remove warnings about MEMORY_DMABUF Sumit Semwal
2012-01-05 10:41 ` [RFCv1 4/4] v4l:vb2: Add dma-contig allocator as dma_buf user Sumit Semwal
2012-01-16  7:57 ` [RFCv1 0/4] v4l: DMA buffer sharing support as a user Kyungmin Park

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=20120123094007.GA5998@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=arnd@arndb.de \
    --cc=jesse.barker@linaro.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=patches@linaro.org \
    --cc=pawel@osciak.com \
    --cc=rob@ti.com \
    --cc=sumit.semwal@linaro.org \
    --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.