From: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
To: linux-media@vger.kernel.org, laurent.pinchart@ideasonboard.com
Cc: dafna.hirschfeld@collabora.com, helen.koike@collabora.com,
ezequiel@collabora.com, hverkuil@xs4all.nl, kernel@collabora.com,
dafna3@gmail.com, sakari.ailus@linux.intel.com,
linux-rockchip@lists.infradead.org, mchehab@kernel.org,
tfiga@chromium.org, skhan@linuxfoundation.org,
p.zabel@pengutronix.de
Subject: [RFC v4 6/8] media: staging: rkisp1: validate quantization matching in link_validate callbacks
Date: Fri, 5 Jun 2020 19:26:23 +0200 [thread overview]
Message-ID: <20200605172625.19777-7-dafna.hirschfeld@collabora.com> (raw)
In-Reply-To: <20200605172625.19777-1-dafna.hirschfeld@collabora.com>
The quantization of the rkisp1 entities can be set by userspace
using the CSC API. Therefore we validate that the
quantization field matches on the links in the link_validate
callbacks.
Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
---
drivers/staging/media/rkisp1/rkisp1-capture.c | 3 ++-
drivers/staging/media/rkisp1/rkisp1-resizer.c | 21 ++++++++++++++++++-
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/media/rkisp1/rkisp1-capture.c b/drivers/staging/media/rkisp1/rkisp1-capture.c
index 66856d5eb576..3eb2ea1a9eb1 100644
--- a/drivers/staging/media/rkisp1/rkisp1-capture.c
+++ b/drivers/staging/media/rkisp1/rkisp1-capture.c
@@ -1263,7 +1263,8 @@ static int rkisp1_capture_link_validate(struct media_link *link)
return ret;
if (sd_fmt.format.height != cap->pix.fmt.height ||
- sd_fmt.format.width != cap->pix.fmt.width)
+ sd_fmt.format.width != cap->pix.fmt.width ||
+ sd_fmt.format.quantization != cap->pix.fmt.quantization)
return -EPIPE;
return 0;
diff --git a/drivers/staging/media/rkisp1/rkisp1-resizer.c b/drivers/staging/media/rkisp1/rkisp1-resizer.c
index 237cce9183f7..027396b00124 100644
--- a/drivers/staging/media/rkisp1/rkisp1-resizer.c
+++ b/drivers/staging/media/rkisp1/rkisp1-resizer.c
@@ -671,6 +671,25 @@ static int rkisp1_rsz_set_selection(struct v4l2_subdev *sd,
return 0;
}
+int rkisp1_rsz_link_validate(struct v4l2_subdev *sd, struct media_link *link,
+ struct v4l2_subdev_format *source_fmt,
+ struct v4l2_subdev_format *sink_fmt)
+{
+ int ret;
+
+ ret = v4l2_subdev_link_validate_default(sd, link, source_fmt, sink_fmt);
+ if (ret)
+ return ret;
+ if (source_fmt->format.quantization != sink_fmt->format.quantization) {
+ struct device *dev = link->graph_obj.mdev->dev;
+
+ dev_warn(dev, "isp->resizer link validation failed, ");
+ dev_warn(dev, "quantizations don't match\n");
+ return -EPIPE;
+ }
+ return 0;
+}
+
static const struct media_entity_operations rkisp1_rsz_media_ops = {
.link_validate = v4l2_subdev_link_validate,
};
@@ -682,7 +701,7 @@ static const struct v4l2_subdev_pad_ops rkisp1_rsz_pad_ops = {
.init_cfg = rkisp1_rsz_init_config,
.get_fmt = rkisp1_rsz_get_fmt,
.set_fmt = rkisp1_rsz_set_fmt,
- .link_validate = v4l2_subdev_link_validate_default,
+ .link_validate = rkisp1_rsz_link_validate,
};
/* ----------------------------------------------------------------------------
--
2.17.1
next prev parent reply other threads:[~2020-06-05 17:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 17:26 [RFC v4 0/8] v4l2: add support for colorspace conversion API (CSC) for video capture and subdevices Dafna Hirschfeld
2020-06-05 17:26 ` [RFC v4 1/8] media: staging: rkisp1: rsz: supported formats are the isp's src formats, not sink formats Dafna Hirschfeld
2020-06-08 11:33 ` Hans Verkuil
2020-06-05 17:26 ` [RFC v4 2/8] media: staging: rkisp1: rsz: set default format if the given format is not RKISP1_DIR_SRC Dafna Hirschfeld
2020-06-08 11:31 ` Hans Verkuil
2020-06-05 17:26 ` [RFC v4 3/8] media: Documentation: v4l: move table of v4l2_pix_format(_mplane) flags to pixfmt-v4l2.rst Dafna Hirschfeld
2020-06-25 23:29 ` Helen Koike
2020-06-05 17:26 ` [RFC v4 4/8] v4l2: add support for colorspace conversion API (CSC) for video capture and subdevices Dafna Hirschfeld
2020-06-08 10:00 ` Hans Verkuil
2020-06-26 12:22 ` Philipp Zabel
2020-06-30 15:23 ` Dafna Hirschfeld
2020-07-01 13:21 ` Philipp Zabel
2020-06-25 23:29 ` Helen Koike
2020-06-26 7:13 ` Hans Verkuil
2020-06-30 16:36 ` Dafna Hirschfeld
2020-06-05 17:26 ` [RFC v4 5/8] media: staging: rkisp1: allow quantization conversion from userspace for isp source pad Dafna Hirschfeld
2020-06-06 7:28 ` Dafna Hirschfeld
2020-06-25 23:52 ` Helen Koike
2020-06-26 7:07 ` Dafna Hirschfeld
2020-06-05 17:26 ` Dafna Hirschfeld [this message]
2020-06-05 17:26 ` [RFC v4 7/8] media: vivid: Add support to the CSC API Dafna Hirschfeld
2020-06-08 10:10 ` Hans Verkuil
2020-06-08 16:34 ` Dafna Hirschfeld
2020-06-09 11:51 ` Hans Verkuil
2020-06-05 17:26 ` [RFC v4 8/8] media: v4l2: add support for the CSC API for hsv_enc on mediabus Dafna Hirschfeld
2020-06-26 12:24 ` Philipp Zabel
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=20200605172625.19777-7-dafna.hirschfeld@collabora.com \
--to=dafna.hirschfeld@collabora.com \
--cc=dafna3@gmail.com \
--cc=ezequiel@collabora.com \
--cc=helen.koike@collabora.com \
--cc=hverkuil@xs4all.nl \
--cc=kernel@collabora.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=sakari.ailus@linux.intel.com \
--cc=skhan@linuxfoundation.org \
--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;
as well as URLs for NNTP newsgroup(s).