From: Hans Verkuil <hverkuil@xs4all.nl>
To: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Tomasz Figa <tfiga@chromium.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
Christoph Hellwig <hch@lst.de>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>
Subject: Re: [PATCH 05/28] media/v4l2: remove V4L2-FLAG-MEMORY-NON-CONSISTENT
Date: Thu, 10 Sep 2020 11:57:12 +0200 [thread overview]
Message-ID: <f92991e1-e0d7-69ca-9541-1546bb139dd3@xs4all.nl> (raw)
In-Reply-To: <20200910094921.GB97481@google.com>
On 10/09/2020 11:49, Sergey Senozhatsky wrote:
> Hi,
>
> On (20/09/08 23:58), Tomasz Figa wrote:
>>
>> Given the above, we would like to make changes that affect the UAPI.
>> Would you still be able to revert this series?
>>
>
> If we want to apply only "media/v4l2: remove V4L2-FLAG-MEMORY-NON-CONSISTENT"
> patch and keep the rest of the buffer cache hints series in the kernel, then
> I'd add one or two more patches. We don't need ->flags argument in
> create_bufs() and reqbufs() functions, that argument was introduced in order
> to pass in the requested coherency flag.
>
>
> Now.
>
> Then we have a question - do we need flags member in struct
> v4l2_requestbuffers and v4l2_create_buffers or shall we just
> return back those 4 bytes to reserved[]? We pass BUF_FLAG_NO_CACHE_INVALIDATE
> and V4L2_BUF_FLAG_NO_CACHE_SYNC in struct v4l2_buffer.flags.
Drop the now unused flags member in v4l2_requestbuffers and v4l2_create_buffers.
>
> If we decide to remove v4l2_requestbuffers and v4l2_create_buffers ->flags,
> then we also need to rollback documentation changes.
Correct.
>
> Then we need to change CLEAR_AFTER_FIELD(foo, capabilities) in
> v4l2-ioctl to zero out reserved[] areas in v4l2_requestbuffers
> and v4l2_create_buffers. I think v4l2_create_buffers is fine,
> but requstbuffers has flags and reversed[1] in the union so for
> requestbuffers we simply removed the CLEAR_AFTER_FIELD() and
> hence dropped the corresponding check from v4l-compliance.
>
> So, do we plan on using .flags in v4l2_requestbuffers and
> v4l2_create_buffers?
Perhaps, but this patch is meant to revert *all* changes relating to
V4L2_FLAG_MEMORY_NON_CONSISTENT. We don't want to have unused fields
in the public API.
Regards,
Hans
>
>
> - create_bufs()/reqbufs() flags argument removal patch
> (no struct-s/documentation cleanup yet).
>
> ====8<====
> Subject: [PATCH] remove redundant flags argument
>
> ---
> drivers/media/common/videobuf2/videobuf2-core.c | 10 +++++-----
> drivers/media/common/videobuf2/videobuf2-v4l2.c | 6 ++----
> include/media/videobuf2-core.h | 6 ++----
> 3 files changed, 9 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> index 66a41cef33c1..4eab6d81cce1 100644
> --- a/drivers/media/common/videobuf2/videobuf2-core.c
> +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> @@ -722,7 +722,7 @@ int vb2_verify_memory_type(struct vb2_queue *q,
> EXPORT_SYMBOL(vb2_verify_memory_type);
>
> int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
> - unsigned int flags, unsigned int *count)
> + unsigned int *count)
> {
> unsigned int num_buffers, allocated_buffers, num_planes = 0;
> unsigned plane_sizes[VB2_MAX_PLANES] = { };
> @@ -861,7 +861,7 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
> EXPORT_SYMBOL_GPL(vb2_core_reqbufs);
>
> int vb2_core_create_bufs(struct vb2_queue *q, enum vb2_memory memory,
> - unsigned int flags, unsigned int *count,
> + unsigned int *count,
> unsigned int requested_planes,
> const unsigned int requested_sizes[])
> {
> @@ -2547,7 +2547,7 @@ static int __vb2_init_fileio(struct vb2_queue *q, int read)
> fileio->memory = VB2_MEMORY_MMAP;
> fileio->type = q->type;
> q->fileio = fileio;
> - ret = vb2_core_reqbufs(q, fileio->memory, 0, &fileio->count);
> + ret = vb2_core_reqbufs(q, fileio->memory, &fileio->count);
> if (ret)
> goto err_kfree;
>
> @@ -2604,7 +2604,7 @@ static int __vb2_init_fileio(struct vb2_queue *q, int read)
>
> err_reqbufs:
> fileio->count = 0;
> - vb2_core_reqbufs(q, fileio->memory, 0, &fileio->count);
> + vb2_core_reqbufs(q, fileio->memory, &fileio->count);
>
> err_kfree:
> q->fileio = NULL;
> @@ -2624,7 +2624,7 @@ static int __vb2_cleanup_fileio(struct vb2_queue *q)
> vb2_core_streamoff(q, q->type);
> q->fileio = NULL;
> fileio->count = 0;
> - vb2_core_reqbufs(q, fileio->memory, 0, &fileio->count);
> + vb2_core_reqbufs(q, fileio->memory, &fileio->count);
> kfree(fileio);
> dprintk(q, 3, "file io emulator closed\n");
> }
> diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
> index d2879f53455b..96d3b2b2aa31 100644
> --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
> +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
> @@ -728,8 +728,7 @@ int vb2_reqbufs(struct vb2_queue *q, struct v4l2_requestbuffers *req)
> int ret = vb2_verify_memory_type(q, req->memory, req->type);
>
> fill_buf_caps(q, &req->capabilities);
> - return ret ? ret : vb2_core_reqbufs(q, req->memory,
> - req->flags, &req->count);
> + return ret ? ret : vb2_core_reqbufs(q, req->memory, &req->count);
> }
> EXPORT_SYMBOL_GPL(vb2_reqbufs);
>
> @@ -804,7 +803,6 @@ int vb2_create_bufs(struct vb2_queue *q, struct v4l2_create_buffers *create)
> if (requested_sizes[i] == 0)
> return -EINVAL;
> return ret ? ret : vb2_core_create_bufs(q, create->memory,
> - create->flags,
> &create->count,
> requested_planes,
> requested_sizes);
> @@ -993,7 +991,7 @@ int vb2_ioctl_reqbufs(struct file *file, void *priv,
> return res;
> if (vb2_queue_is_busy(vdev, file))
> return -EBUSY;
> - res = vb2_core_reqbufs(vdev->queue, p->memory, p->flags, &p->count);
> + res = vb2_core_reqbufs(vdev->queue, p->memory, &p->count);
> /* If count == 0, then the owner has released all buffers and he
> is no longer owner of the queue. Otherwise we have a new owner. */
> if (res == 0)
> diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
> index 4c7f25b07e93..bbb3f26fbde9 100644
> --- a/include/media/videobuf2-core.h
> +++ b/include/media/videobuf2-core.h
> @@ -744,7 +744,6 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb);
> * vb2_core_reqbufs() - Initiate streaming.
> * @q: pointer to &struct vb2_queue with videobuf2 queue.
> * @memory: memory type, as defined by &enum vb2_memory.
> - * @flags: auxiliary queue/buffer management flags.
> * @count: requested buffer count.
> *
> * Videobuf2 core helper to implement VIDIOC_REQBUF() operation. It is called
> @@ -769,13 +768,12 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb);
> * Return: returns zero on success; an error code otherwise.
> */
> int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
> - unsigned int flags, unsigned int *count);
> + unsigned int *count);
>
> /**
> * vb2_core_create_bufs() - Allocate buffers and any required auxiliary structs
> * @q: pointer to &struct vb2_queue with videobuf2 queue.
> * @memory: memory type, as defined by &enum vb2_memory.
> - * @flags: auxiliary queue/buffer management flags.
> * @count: requested buffer count.
> * @requested_planes: number of planes requested.
> * @requested_sizes: array with the size of the planes.
> @@ -793,7 +791,7 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
> * Return: returns zero on success; an error code otherwise.
> */
> int vb2_core_create_bufs(struct vb2_queue *q, enum vb2_memory memory,
> - unsigned int flags, unsigned int *count,
> + unsigned int *count,
> unsigned int requested_planes,
> const unsigned int requested_sizes[]);
>
>
next prev parent reply other threads:[~2020-09-10 9:59 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20200819065610eucas1p2fde88e81917071b1888e7cc01ba0f298@eucas1p2.samsung.com>
2020-08-19 6:55 ` a saner API for allocating DMA addressable pages Christoph Hellwig
2020-08-19 6:55 ` [PATCH 01/28] mm: turn alloc_pages into an inline function Christoph Hellwig
2020-08-19 6:55 ` [PATCH 02/28] drm/exynos: stop setting DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2020-08-19 6:55 ` [PATCH 03/28] drm/nouveau/gk20a: " Christoph Hellwig
2020-08-19 6:55 ` [PATCH 04/28] net/au1000-eth: stop using DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2020-08-19 6:55 ` [PATCH 05/28] media/v4l2: remove V4L2-FLAG-MEMORY-NON-CONSISTENT Christoph Hellwig
2020-08-19 11:16 ` Tomasz Figa
2020-08-19 11:51 ` Robin Murphy
2020-08-19 12:49 ` Tomasz Figa
2020-08-19 13:57 ` Christoph Hellwig
2020-08-19 14:11 ` Tomasz Figa
2020-08-20 4:45 ` Christoph Hellwig
2020-08-20 10:09 ` Tomasz Figa
2020-08-20 16:51 ` Christoph Hellwig
2020-08-19 14:07 ` Robin Murphy
2020-08-19 14:22 ` Tomasz Figa
2020-08-20 4:52 ` Christoph Hellwig
2020-08-20 5:02 ` Christoph Hellwig
2020-08-20 10:24 ` Tomasz Figa
2020-08-20 16:52 ` Christoph Hellwig
2020-08-20 17:41 ` Tomasz Figa
2020-08-19 13:54 ` Christoph Hellwig
2020-08-19 13:57 ` Tomasz Figa
2020-08-20 4:43 ` Christoph Hellwig
2020-08-20 5:20 ` Christoph Hellwig
2020-08-20 10:05 ` Tomasz Figa
2020-08-20 16:54 ` Christoph Hellwig
2020-08-20 17:33 ` Tomasz Figa
2020-09-01 11:06 ` Christoph Hellwig
2020-09-01 15:02 ` Tomasz Figa
2020-09-08 21:58 ` Tomasz Figa
2020-09-08 22:09 ` Tomasz Figa
2020-09-10 9:49 ` Sergey Senozhatsky
2020-09-10 9:57 ` Hans Verkuil [this message]
2020-09-10 10:14 ` Sergey Senozhatsky
2020-09-10 10:23 ` Hans Verkuil
2020-09-10 14:48 ` Sergey Senozhatsky
2020-09-10 15:38 ` Sergey Senozhatsky
2020-08-19 6:55 ` [PATCH 06/28] lib82596: move DMA allocation into the callers of i82596_probe Christoph Hellwig
2020-09-01 13:29 ` Thomas Bogendoerfer
2020-08-19 6:55 ` [PATCH 07/28] 53c700: improve non-coherent DMA handling Christoph Hellwig
2020-09-01 14:52 ` James Bottomley
2020-09-01 15:05 ` Matthew Wilcox
2020-09-01 15:22 ` James Bottomley
2020-09-01 16:21 ` Helge Deller
2020-09-01 16:41 ` Helge Deller
2020-09-01 16:53 ` Matthew Wilcox
2020-09-02 15:00 ` Helge Deller
2020-08-19 6:55 ` [PATCH 08/28] MIPS: make dma_sync_*_for_cpu a little less overzealous Christoph Hellwig
2020-09-01 13:53 ` Thomas Bogendoerfer
2020-08-19 6:55 ` [PATCH 09/28] MIPS/jazzdma: remove the unused vdma_remap function Christoph Hellwig
2020-09-01 13:49 ` Thomas Bogendoerfer
2020-08-19 6:55 ` [PATCH 10/28] MIPS/jazzdma: decouple from dma-direct Christoph Hellwig
2020-09-01 13:49 ` Thomas Bogendoerfer
2020-08-19 6:55 ` [PATCH 11/28] dma-mapping: add (back) arch_dma_mark_clean for ia64 Christoph Hellwig
2020-08-19 6:55 ` [PATCH 12/28] dma-direct: remove dma_direct_{alloc,free}_pages Christoph Hellwig
2020-08-19 6:55 ` [PATCH 13/28] dma-direct: lift gfp_t manipulation out of__dma_direct_alloc_pages Christoph Hellwig
2020-08-19 6:55 ` [PATCH 14/28] dma-direct: use phys_to_dma_direct in dma_direct_alloc Christoph Hellwig
2020-08-19 6:55 ` [PATCH 15/28] dma-direct: remove __dma_to_phys Christoph Hellwig
2020-08-19 6:55 ` [PATCH 16/28] dma-direct: rename and cleanup __phys_to_dma Christoph Hellwig
2020-08-19 6:55 ` [PATCH 17/28] dma-mapping: move dma_common_{mmap,get_sgtable} out of mapping.c Christoph Hellwig
2020-08-19 6:55 ` [PATCH 18/28] dma-mapping: move the dma_declare_coherent_memory documentation Christoph Hellwig
2020-08-19 6:55 ` [PATCH 19/28] dma-mapping: replace DMA_ATTR_NON_CONSISTENT with dma_{alloc,free}_pages Christoph Hellwig
2020-08-19 15:03 ` [PATCH 19/28] dma-mapping: replace DMA_ATTR_NON_CONSISTENT with dma_{alloc, free}_pages Tomasz Figa
2020-08-20 5:15 ` Christoph Hellwig
2020-08-19 6:55 ` [PATCH 20/28] sgiwd93: convert from dma_cache_sync to dma_sync_single_for_device Christoph Hellwig
2020-08-19 6:55 ` [PATCH 21/28] hal2: " Christoph Hellwig
2020-08-19 6:55 ` [PATCH 22/28] sgiseeq: " Christoph Hellwig
2020-09-01 15:22 ` Thomas Bogendoerfer
2020-09-01 17:12 ` Thomas Bogendoerfer
2020-09-01 17:16 ` Christoph Hellwig
2020-09-01 17:38 ` Thomas Bogendoerfer
2020-09-02 21:38 ` Thomas Bogendoerfer
2020-09-03 8:42 ` Christoph Hellwig
2020-09-03 8:43 ` Christoph Hellwig
2020-09-03 8:46 ` Christoph Hellwig
2020-08-19 6:55 ` [PATCH 23/28] lib82596: " Christoph Hellwig
2020-08-19 6:55 ` [PATCH 24/28] 53c700: " Christoph Hellwig
2020-08-19 6:55 ` [PATCH 25/28] dma-mapping: remove dma_cache_sync Christoph Hellwig
2020-08-19 6:55 ` [PATCH 26/28] dmapool: add dma_alloc_pages support Christoph Hellwig
2020-08-19 6:55 ` [PATCH 27/28] nvme-pci: fix PRP pool size Christoph Hellwig
2020-08-19 6:55 ` [PATCH 28/28] nvme-pci: use dma_alloc_pages backed dmapools Christoph Hellwig
2020-08-25 11:30 ` a saner API for allocating DMA addressable pages Marek Szyprowski
2020-08-25 13:26 ` Christoph Hellwig
2020-08-29 9:46 ` Helge Deller
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=f92991e1-e0d7-69ca-9541-1546bb139dd3@xs4all.nl \
--to=hverkuil@xs4all.nl \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=tfiga@chromium.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®