From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Hans Verkuil <hansverk@cisco.com>,
linux-media <linux-media@vger.kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>, Pawel Osciak <pawel@osciak.com>
Subject: Re: [PATCH for 3.13] vb2: regression fix: always set length field.
Date: Thu, 05 Dec 2013 11:36:48 +0100 [thread overview]
Message-ID: <52A05740.6070004@samsung.com> (raw)
In-Reply-To: <529F38AD.7030703@cisco.com>
Hello,
On 2013-12-04 15:14, Hans Verkuil wrote:
> Commit dc77523c5da5513df1bbc74db2a522a94f4cec0e ensured that m.offset is
> only set for the MMAP memory mode by calling __setup_offsets only for that
> mode.
>
> However, __setup_offsets also initializes the length fields, and that should
> be done regardless of the memory mode. Because of that change the v4l2-ctl
> test application fails for the USERPTR mode.
>
> This fix creates a __setup_lengths function that sets the length, and
> __setup_offsets just sets the offset and no longer touches the length.
>
> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
> drivers/media/v4l2-core/videobuf2-core.c | 21 ++++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c
> index 57ba131..0edc165 100644
> --- a/drivers/media/v4l2-core/videobuf2-core.c
> +++ b/drivers/media/v4l2-core/videobuf2-core.c
> @@ -145,6 +145,25 @@ static void __vb2_buf_dmabuf_put(struct vb2_buffer *vb)
> }
>
> /**
> + * __setup_lengths() - setup initial lengths for every plane in
> + * every buffer on the queue
> + */
> +static void __setup_lengths(struct vb2_queue *q, unsigned int n)
> +{
> + unsigned int buffer, plane;
> + struct vb2_buffer *vb;
> +
> + for (buffer = q->num_buffers; buffer < q->num_buffers + n; ++buffer) {
> + vb = q->bufs[buffer];
> + if (!vb)
> + continue;
> +
> + for (plane = 0; plane < vb->num_planes; ++plane)
> + vb->v4l2_planes[plane].length = q->plane_sizes[plane];
> + }
> +}
> +
> +/**
> * __setup_offsets() - setup unique offsets ("cookies") for every plane in
> * every buffer on the queue
> */
> @@ -169,7 +188,6 @@ static void __setup_offsets(struct vb2_queue *q, unsigned int n)
> continue;
>
> for (plane = 0; plane < vb->num_planes; ++plane) {
> - vb->v4l2_planes[plane].length = q->plane_sizes[plane];
> vb->v4l2_planes[plane].m.mem_offset = off;
>
> dprintk(3, "Buffer %d, plane %d offset 0x%08lx\n",
> @@ -241,6 +259,7 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum v4l2_memory memory,
> q->bufs[q->num_buffers + buffer] = vb;
> }
>
> + __setup_lengths(q, buffer);
> if (memory == V4L2_MEMORY_MMAP)
> __setup_offsets(q, buffer);
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
prev parent reply other threads:[~2013-12-05 10:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 14:14 [PATCH for 3.13] vb2: regression fix: always set length field Hans Verkuil
2013-12-05 10:36 ` Marek Szyprowski [this message]
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=52A05740.6070004@samsung.com \
--to=m.szyprowski@samsung.com \
--cc=hansverk@cisco.com \
--cc=linux-media@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=pawel@osciak.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.