From: Tomasz Figa <tfiga@chromium.org> To: Sakari Ailus <sakari.ailus@linux.intel.com> Cc: linux-media@vger.kernel.org, dri-devel <dri-devel@lists.freedesktop.org>, posciak@chromium.org, Marek Szyprowski <m.szyprowski@samsung.com>, Kyungmin Park <kyungmin.park@samsung.com>, Hans Verkuil <hverkuil@xs4all.nl>, sumit.semwal@linaro.org, Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel.vetter@ffwll.ch>, labbott@redhat.com, Laurent Pinchart <laurent.pinchart@ideasonboard.com> Subject: Re: [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field Date: Wed, 10 May 2017 18:13:04 +0800 [thread overview] Message-ID: <CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com> (raw) In-Reply-To: <1494255810-12672-8-git-send-email-sakari.ailus@linux.intel.com> Hi Sakari, Some comments inline. On Mon, May 8, 2017 at 11:03 PM, Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > The struct vb2_dc_buf contains two struct sg_table fields: sgt_base and > dma_sgt. The former is used by DMA-BUF buffers whereas the latter is used > by USERPTR. > > Unify the two, leaving dma_sgt. > > MMAP buffers do not need cache flushing since they have been allocated > using dma_alloc_coherent(). > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > --- > drivers/media/v4l2-core/videobuf2-dma-contig.c | 25 +++++++++++++------------ > 1 file changed, 13 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c > index a8a46a8..ddbbcf0 100644 > --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c > +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c > @@ -31,12 +31,13 @@ struct vb2_dc_buf { > unsigned long attrs; > enum dma_data_direction dma_dir; > struct sg_table *dma_sgt; > - struct frame_vector *vec; > > /* MMAP related */ > struct vb2_vmarea_handler handler; > refcount_t refcount; > - struct sg_table *sgt_base; > + > + /* USERPTR related */ > + struct frame_vector *vec; > > /* DMABUF related */ > struct dma_buf_attachment *db_attach; > @@ -96,7 +97,7 @@ static void vb2_dc_prepare(void *buf_priv) > struct sg_table *sgt = buf->dma_sgt; > > /* DMABUF exporter will flush the cache for us */ > - if (!sgt || buf->db_attach) > + if (!buf->vec) While at it, can we change the comment above to actually refer to what this condition is checking? Maybe it's just me, but it's very confusing, as the condition is actually (!USERPTR), while the comment mentions DMABUF alone and not even mentioning about MMAP. Maybe we could have something like this: /* * Only USERPTR needs cache maintenance. DMABUF exporter will flush * the cache for us, while MMAP buffers are coherent by design. */ I guess it could be done as a separate patch after this series, especially considering the message might actually change, since we are going to allow cached MMAP buffers. > return; > > dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->orig_nents, > @@ -109,7 +110,7 @@ static void vb2_dc_finish(void *buf_priv) > struct sg_table *sgt = buf->dma_sgt; > > /* DMABUF exporter will flush the cache for us */ Here too. Best regards, Tomasz
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tfiga@chromium.org> To: Sakari Ailus <sakari.ailus@linux.intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, dri-devel <dri-devel@lists.freedesktop.org>, Hans Verkuil <hverkuil@xs4all.nl>, Kyungmin Park <kyungmin.park@samsung.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, linux-media@vger.kernel.org, posciak@chromium.org, Marek Szyprowski <m.szyprowski@samsung.com> Subject: Re: [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field Date: Wed, 10 May 2017 18:13:04 +0800 [thread overview] Message-ID: <CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com> (raw) In-Reply-To: <1494255810-12672-8-git-send-email-sakari.ailus@linux.intel.com> Hi Sakari, Some comments inline. On Mon, May 8, 2017 at 11:03 PM, Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > The struct vb2_dc_buf contains two struct sg_table fields: sgt_base and > dma_sgt. The former is used by DMA-BUF buffers whereas the latter is used > by USERPTR. > > Unify the two, leaving dma_sgt. > > MMAP buffers do not need cache flushing since they have been allocated > using dma_alloc_coherent(). > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > --- > drivers/media/v4l2-core/videobuf2-dma-contig.c | 25 +++++++++++++------------ > 1 file changed, 13 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c > index a8a46a8..ddbbcf0 100644 > --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c > +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c > @@ -31,12 +31,13 @@ struct vb2_dc_buf { > unsigned long attrs; > enum dma_data_direction dma_dir; > struct sg_table *dma_sgt; > - struct frame_vector *vec; > > /* MMAP related */ > struct vb2_vmarea_handler handler; > refcount_t refcount; > - struct sg_table *sgt_base; > + > + /* USERPTR related */ > + struct frame_vector *vec; > > /* DMABUF related */ > struct dma_buf_attachment *db_attach; > @@ -96,7 +97,7 @@ static void vb2_dc_prepare(void *buf_priv) > struct sg_table *sgt = buf->dma_sgt; > > /* DMABUF exporter will flush the cache for us */ > - if (!sgt || buf->db_attach) > + if (!buf->vec) While at it, can we change the comment above to actually refer to what this condition is checking? Maybe it's just me, but it's very confusing, as the condition is actually (!USERPTR), while the comment mentions DMABUF alone and not even mentioning about MMAP. Maybe we could have something like this: /* * Only USERPTR needs cache maintenance. DMABUF exporter will flush * the cache for us, while MMAP buffers are coherent by design. */ I guess it could be done as a separate patch after this series, especially considering the message might actually change, since we are going to allow cached MMAP buffers. > return; > > dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->orig_nents, > @@ -109,7 +110,7 @@ static void vb2_dc_finish(void *buf_priv) > struct sg_table *sgt = buf->dma_sgt; > > /* DMABUF exporter will flush the cache for us */ Here too. Best regards, Tomasz _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2017-05-10 10:13 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-05-08 15:03 [RFC v4 00/18] vb2: Handle user cache hints, allow drivers to choose cache coherency Sakari Ailus 2017-05-08 15:03 ` [RFC v4 01/18] vb2: Rename confusingly named internal buffer preparation functions Sakari Ailus 2017-05-08 15:03 ` [RFC v4 02/18] vb2: Move buffer cache synchronisation to prepare from queue Sakari Ailus 2017-05-08 15:03 ` Sakari Ailus 2017-05-08 15:03 ` [RFC v4 03/18] vb2: Move cache synchronisation from buffer done to dqbuf handler Sakari Ailus 2018-10-05 4:34 ` Tomasz Figa 2018-10-05 4:34 ` Tomasz Figa 2017-05-08 15:03 ` [RFC v4 04/18] v4l: Unify cache management hint buffer flags Sakari Ailus 2017-05-08 15:03 ` [RFC v4 05/18] vb2: Anticipate queue specific DMA attributes for USERPTR buffers Sakari Ailus 2017-05-08 15:03 ` [RFC v4 06/18] vb2: dma-contig: Assign DMA attrs for a buffer unconditionally Sakari Ailus 2017-05-08 15:03 ` [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field Sakari Ailus 2017-05-10 10:13 ` Tomasz Figa [this message] 2017-05-10 10:13 ` Tomasz Figa 2017-05-08 15:03 ` [RFC v4 08/18] vb2: dma-contig: Don't warn on failure in obtaining scatterlist Sakari Ailus 2017-05-08 15:03 ` Sakari Ailus 2017-05-08 15:03 ` [RFC v4 09/18] vb2: dma-contig: Allocate sgt as part of struct vb2_dc_buf Sakari Ailus 2017-05-08 15:03 ` [RFC v4 10/18] vb2: dma-contig: Fix DMA attribute and cache management Sakari Ailus 2017-05-08 15:03 ` Sakari Ailus 2017-05-10 10:32 ` Tomasz Figa 2017-05-23 12:07 ` Sakari Ailus 2017-05-23 12:07 ` Sakari Ailus 2017-05-08 15:03 ` [RFC v4 11/18] vb2: dma-contig: Add WARN_ON_ONCE() to check for potential bugs Sakari Ailus 2017-05-08 15:03 ` [RFC v4 12/18] vb2: dma-sg: Let drivers decide DMA attrs of MMAP and USERPTR bufs Sakari Ailus 2017-05-08 15:03 ` [RFC v4 13/18] vb2: Don't sync cache for a buffer if so requested Sakari Ailus 2017-05-10 11:00 ` Tomasz Figa 2017-05-23 12:35 ` Sakari Ailus 2017-05-08 15:03 ` [RFC v4 14/18] vb2: Improve struct vb2_mem_ops documentation; alloc and put are for MMAP Sakari Ailus 2017-05-08 15:03 ` [RFC v4 15/18] vb2: Dma direction is always DMA_TO_DEVICE in buffer preparation Sakari Ailus 2017-05-08 15:03 ` [RFC v4 16/18] vb2: Do sync plane cache only for CAPTURE buffers in finish memop Sakari Ailus 2017-05-08 15:03 ` [RFC v4 17/18] docs-rst: Document precise V4L2_BUF_FLAG_NO_CACHE_SYNC flag behaviour Sakari Ailus 2017-05-08 15:03 ` [RFC v4 18/18] v4l: Use non-consistent DMA mappings for hardware that deserves it Sakari Ailus 2017-06-07 17:13 ` [RFC v4 00/18] vb2: Handle user cache hints, allow drivers to choose cache coherency Mauro Carvalho Chehab 2017-06-07 20:56 ` Sakari Ailus
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='CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com' \ --to=tfiga@chromium.org \ --cc=daniel.vetter@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=hverkuil@xs4all.nl \ --cc=kyungmin.park@samsung.com \ --cc=labbott@redhat.com \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-media@vger.kernel.org \ --cc=m.szyprowski@samsung.com \ --cc=posciak@chromium.org \ --cc=robdclark@gmail.com \ --cc=sakari.ailus@linux.intel.com \ --cc=sumit.semwal@linaro.org \ /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: linkBe 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.