From: Jean Christophe TROTIN <jean-christophe.trotin@st.com>
To: Hans Verkuil <hverkuil@xs4all.nl>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Cc: "kernel@stlinux.com" <kernel@stlinux.com>,
Benjamin Gaignard <benjamin.gaignard@linaro.org>,
Yannick FERTRE <yannick.fertre@st.com>,
Hugues FRUCHET <hugues.fruchet@st.com>
Subject: Re: [PATCH v2 2/3] [media] hva: multi-format video encoder V4L2 driver
Date: Tue, 19 Jul 2016 17:55:57 +0200 [thread overview]
Message-ID: <578E4D8D.7070708@st.com> (raw)
In-Reply-To: <28f37284-0c57-7d22-a32d-5627079c86d5@xs4all.nl>
Hi Hans,
Thank you for your comments.
I've started to take them into account.
I've got a question about V4L2_FIELD_ANY in buf_prepare (please see below).
[snip]
>> +static int hva_buf_prepare(struct vb2_buffer *vb)
>> +{
>> + struct hva_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
>> + struct device *dev = ctx_to_dev(ctx);
>> + struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
>> +
>> + if (vb->vb2_queue->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
>> + struct hva_frame *frame = to_hva_frame(vbuf);
>> +
>> + if (vbuf->field == V4L2_FIELD_ANY)
>> + vbuf->field = V4L2_FIELD_NONE;
>
> Anything other than FIELD_NONE should result in an error since no interlaced
is supported.
> FIELD_ANY is an incorrect value as well.
>
In videodev2.h, V4L2_FIELD_ANY is commented as "driver can choose from none,
top, bottom, interlaced depending on whatever it thinks is approximate ...": I
understand this comment as if vbuf->field is equal to V4L2_FIELD_ANY, then the
driver can choose to force it to V4L2_FIELD_NONE. Furthermore, it's coded in the
same way in vim2m.c (vim2m_buf_prepare).
Finally, if I remove these 2 lines, I've got the following error with the
v4l2-compliance:
Streaming ioctls:
VIDIOC_G_INPUT returned -1 (Inappropriate ioctl for device)
VIDIOC_ENUMINPUT returned -1 (Inappropriate ioctl for device)
test read/write: OK (Not Supported)
VIDIOC_QUERYCAP returned 0 (Success)
[snip]
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QBUF returned -1 (Invalid argument)
fail:
/local/home/frq08988/views/opensdk-2.1.4.1/sources/v4l-utils/utils/v4l2-compliance/v4l2-test-buffers.cpp(773):
buf.qbuf(node)
fail:
/local/home/frq08988/views/opensdk-2.1.4.1/sources/v4l-utils/utils/v4l2-compliance/v4l2-test-buffers.cpp(971):
setupM2M(node, m2m_q)
test MMAP: FAIL
Don't you think that I could keep these two lines?
>> + if (vbuf->field != V4L2_FIELD_NONE) {
>> + dev_dbg(dev,
>> + "%s frame[%d] prepare: %d field not supported\n",
>> + ctx->name, vb->index, vbuf->field);
>> + return -EINVAL;
>> + }
>> +
>> + if (!frame->prepared) {
>> + /* get memory addresses */
>> + frame->vaddr = vb2_plane_vaddr(&vbuf->vb2_buf, 0);
>> + frame->paddr = vb2_dma_contig_plane_dma_addr(
>> + &vbuf->vb2_buf, 0);
>> + frame->info = ctx->frameinfo;
>> + frame->prepared = true;
>> +
>> + dev_dbg(dev,
>> + "%s frame[%d] prepared; virt=%p, phy=%pad\n",
>> + ctx->name, vb->index,
>> + frame->vaddr, &frame->paddr);
>> + }
>> + } else {
>> + struct hva_stream *stream = to_hva_stream(vbuf);
>> +
>> + if (!stream->prepared) {
>> + /* get memory addresses */
>> + stream->vaddr = vb2_plane_vaddr(&vbuf->vb2_buf, 0);
>> + stream->paddr = vb2_dma_contig_plane_dma_addr(
>> + &vbuf->vb2_buf, 0);
>> + stream->size = vb2_plane_size(&vbuf->vb2_buf, 0);
>> + stream->prepared = true;
>> +
>> + dev_dbg(dev,
>> + "%s stream[%d] prepared; virt=%p, phy=%pad\n",
>> + ctx->name, vb->index,
>> + stream->vaddr, &stream->paddr);
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
[snip]
Regards,
Jean-Christophe.
next prev parent reply other threads:[~2016-07-19 15:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-11 15:14 [PATCH v2 0/3] support of v4l2 encoder for STMicroelectronics SOC Jean-Christophe Trotin
2016-07-11 15:14 ` [PATCH v2 1/3] Documentation: DT: add bindings for STI HVA Jean-Christophe Trotin
2016-07-11 15:14 ` [PATCH v2 2/3] [media] hva: multi-format video encoder V4L2 driver Jean-Christophe Trotin
2016-07-11 18:00 ` Nicolas Dufresne
2016-07-13 14:11 ` Jean Christophe TROTIN
2016-07-18 11:45 ` Hans Verkuil
2016-07-19 15:55 ` Jean Christophe TROTIN [this message]
2016-07-19 16:45 ` Hans Verkuil
2016-07-21 7:30 ` Jean Christophe TROTIN
2016-07-21 9:49 ` Hans Verkuil
2016-07-25 14:09 ` Jean Christophe TROTIN
2016-07-11 15:14 ` [PATCH v2 3/3] [media] hva: add H.264 video encoding support Jean-Christophe Trotin
2016-07-18 11:55 ` Hans Verkuil
2016-07-21 7:30 ` Jean Christophe TROTIN
2016-07-11 17:48 ` [PATCH v2 0/3] support of v4l2 encoder for STMicroelectronics SOC Nicolas Dufresne
2016-07-11 18:57 ` Javier Martinez Canillas
2016-07-13 13:49 ` Jean Christophe TROTIN
2016-07-13 14:00 ` Javier Martinez Canillas
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=578E4D8D.7070708@st.com \
--to=jean-christophe.trotin@st.com \
--cc=benjamin.gaignard@linaro.org \
--cc=hugues.fruchet@st.com \
--cc=hverkuil@xs4all.nl \
--cc=kernel@stlinux.com \
--cc=linux-media@vger.kernel.org \
--cc=yannick.fertre@st.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).