From: Vandana BN <bnvandana@gmail.com>
To: linux-media@vger.kernel.org,
linux-kernel-mentees@lists.linuxfoundation.org
Cc: hverkuil@xs4all.nl, Hans Verkuil <hverkuil-cisco@xs4all.nl>
Subject: [PATCH v7 2/2] vivid: fixes for v4l2-compliance issues.
Date: Wed, 25 Sep 2019 13:57:30 +0530 [thread overview]
Message-ID: <20190925082730.15550-3-bnvandana@gmail.com> (raw)
In-Reply-To: <20190925082730.15550-1-bnvandana@gmail.com>
From: Hans Verkuil <hverkuil@xs4all.nl>
This patch fixes v4l2-compliance issues seen on metadata device.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
---
drivers/media/platform/vivid/vivid-core.c | 16 +++++++++++++++-
drivers/media/platform/vivid/vivid-meta-cap.c | 2 +-
drivers/media/platform/vivid/vivid-vid-cap.c | 5 ++++-
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
index c7d317f45fc0..97ab197bdec0 100644
--- a/drivers/media/platform/vivid/vivid-core.c
+++ b/drivers/media/platform/vivid/vivid-core.c
@@ -897,9 +897,14 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
V4L2_CAP_READWRITE;
/* set up the capabilities of meta capture device */
- if (dev->has_meta_cap)
+ if (dev->has_meta_cap) {
dev->meta_cap_caps = V4L2_CAP_META_CAPTURE |
V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
+ if (dev->has_audio_inputs)
+ dev->meta_cap_caps |= V4L2_CAP_AUDIO;
+ if (in_type_counter[TV])
+ dev->meta_cap_caps |= V4L2_CAP_TUNER;
+ }
ret = -ENOMEM;
/* initialize the test pattern generator */
@@ -960,6 +965,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_S_AUDIO);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_G_AUDIO);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_ENUMAUDIO);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_S_AUDIO);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_G_AUDIO);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_ENUMAUDIO);
}
if (!dev->has_audio_outputs) {
v4l2_disable_ioctl(&dev->vid_out_dev, VIDIOC_S_AUDOUT);
@@ -985,12 +993,16 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
v4l2_disable_ioctl(&dev->vid_cap_dev, VIDIOC_G_FREQUENCY);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_S_FREQUENCY);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_G_FREQUENCY);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_S_FREQUENCY);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_G_FREQUENCY);
}
if (!has_tuner) {
v4l2_disable_ioctl(&dev->vid_cap_dev, VIDIOC_S_TUNER);
v4l2_disable_ioctl(&dev->vid_cap_dev, VIDIOC_G_TUNER);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_S_TUNER);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_G_TUNER);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_S_TUNER);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_G_TUNER);
}
if (in_type_counter[HDMI] == 0) {
v4l2_disable_ioctl(&dev->vid_cap_dev, VIDIOC_S_EDID);
@@ -1016,6 +1028,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
v4l2_disable_ioctl(&dev->vid_cap_dev, VIDIOC_S_HW_FREQ_SEEK);
v4l2_disable_ioctl(&dev->vbi_cap_dev, VIDIOC_S_HW_FREQ_SEEK);
v4l2_disable_ioctl(&dev->sdr_cap_dev, VIDIOC_S_HW_FREQ_SEEK);
+ v4l2_disable_ioctl(&dev->meta_cap_dev, VIDIOC_S_HW_FREQ_SEEK);
v4l2_disable_ioctl(&dev->vid_out_dev, VIDIOC_S_FREQUENCY);
v4l2_disable_ioctl(&dev->vid_out_dev, VIDIOC_G_FREQUENCY);
v4l2_disable_ioctl(&dev->vid_out_dev, VIDIOC_ENUM_FRAMESIZES);
@@ -1552,6 +1565,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
vfd->v4l2_dev = &dev->v4l2_dev;
vfd->queue = &dev->vb_meta_cap_q;
vfd->lock = &dev->mutex;
+ vfd->tvnorms = tvnorms_cap;
video_set_drvdata(vfd, dev);
#ifdef CONFIG_MEDIA_CONTROLLER
dev->meta_cap_pad.flags = MEDIA_PAD_FL_SINK;
diff --git a/drivers/media/platform/vivid/vivid-meta-cap.c b/drivers/media/platform/vivid/vivid-meta-cap.c
index e3241d602b7a..b2f42c09abe1 100644
--- a/drivers/media/platform/vivid/vivid-meta-cap.c
+++ b/drivers/media/platform/vivid/vivid-meta-cap.c
@@ -135,7 +135,7 @@ int vidioc_enum_fmt_meta_cap(struct file *file, void *priv,
struct vivid_dev *dev = video_drvdata(file);
if (!vivid_is_webcam(dev))
- return -ENODATA;
+ return -EINVAL;
if (f->index > 0)
return -EINVAL;
diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c
index 2d030732feac..e94beef008c8 100644
--- a/drivers/media/platform/vivid/vivid-vid-cap.c
+++ b/drivers/media/platform/vivid/vivid-vid-cap.c
@@ -1356,7 +1356,9 @@ int vidioc_s_input(struct file *file, void *priv, unsigned i)
if (i == dev->input)
return 0;
- if (vb2_is_busy(&dev->vb_vid_cap_q) || vb2_is_busy(&dev->vb_vbi_cap_q))
+ if (vb2_is_busy(&dev->vb_vid_cap_q) ||
+ vb2_is_busy(&dev->vb_vbi_cap_q) ||
+ vb2_is_busy(&dev->vb_meta_cap_q))
return -EBUSY;
dev->input = i;
@@ -1366,6 +1368,7 @@ int vidioc_s_input(struct file *file, void *priv, unsigned i)
dev->vid_cap_dev.tvnorms = V4L2_STD_ALL;
}
dev->vbi_cap_dev.tvnorms = dev->vid_cap_dev.tvnorms;
+ dev->meta_cap_dev.tvnorms = dev->vid_cap_dev.tvnorms;
vivid_update_format_cap(dev, false);
if (dev->colorspace) {
--
2.17.1
next prev parent reply other threads:[~2019-09-25 8:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-03 9:45 [PATCH v2] vivid: Add metadata capture support Vandana BN
2019-09-09 9:52 ` [PATCH v3] " Vandana BN
2019-09-11 11:17 ` [PATCH v4] " Vandana BN
2019-09-13 12:01 ` Hans Verkuil
2019-09-16 7:48 ` [PATCH v5] " Vandana BN
2019-09-16 11:46 ` Hans Verkuil
2019-09-16 14:08 ` [PATCH v6] " Vandana BN
2019-09-17 11:03 ` Hans Verkuil
2019-09-25 8:27 ` [PATCH v7 0/2] " Vandana BN
2019-09-25 8:27 ` [PATCH v7 1/2] " Vandana BN
2019-10-03 12:50 ` Hans Verkuil
2019-10-04 9:44 ` [PATCH v8] " Vandana BN
2019-10-04 10:02 ` Hans Verkuil
2019-10-04 10:24 ` [PATCH v9] " Vandana BN
2019-10-07 14:31 ` Hans Verkuil
2019-10-08 7:27 ` [PATCH v10 0/3] vivid: Metadata support Vandana BN
2019-10-08 7:27 ` [PATCH v10 1/3] vivid: Add metadata capture support Vandana BN
2019-10-08 7:27 ` [PATCH v10 2/3] v4l2-core: Add new metadata format Vandana BN
2019-10-08 7:27 ` [PATCH v10 3/3] vivid: Add metadata output support Vandana BN
2019-10-15 10:40 ` [PATCH v11 0/3] vivid: Metadata support Vandana BN
2019-10-15 10:40 ` [PATCH v11 1/3] vivid: Add metadata capture support Vandana BN
2019-10-15 10:40 ` [PATCH v11 2/3] v4l2-core: Add new metadata format Vandana BN
2019-10-15 10:40 ` [PATCH v11 3/3] vivid: Add metadata output support Vandana BN
2019-09-25 8:27 ` Vandana BN [this message]
2019-10-03 12:54 ` [PATCH v7 2/2] vivid: fixes for v4l2-compliance issues Hans Verkuil
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=20190925082730.15550-3-bnvandana@gmail.com \
--to=bnvandana@gmail.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=hverkuil@xs4all.nl \
--cc=linux-kernel-mentees@lists.linuxfoundation.org \
--cc=linux-media@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).