aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch82
1 files changed, 0 insertions, 82 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch b/target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch
deleted file mode 100644
index b30d106f6e..0000000000
--- a/target/linux/bcm27xx/patches-5.4/950-0686-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 40aaca6ed160e67e518c512908cf49efb4cbed8b Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Wed, 29 Apr 2020 16:45:02 +0100
-Subject: [PATCH] media: bcm2835-unicam: Add support for
- VIDIOC_[S|G]_SELECTION
-
-Sensors are now reflecting cropping and scaling parameters through
-the selection API, therefore Unicam needs to forward the requests
-through to the subdev.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- .../media/platform/bcm2835/bcm2835-unicam.c | 44 +++++++++++++++++++
- 1 file changed, 44 insertions(+)
-
---- a/drivers/media/platform/bcm2835/bcm2835-unicam.c
-+++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c
-@@ -1898,6 +1898,39 @@ static int unicam_g_edid(struct file *fi
- return v4l2_subdev_call(dev->sensor, pad, get_edid, edid);
- }
-
-+static int unicam_s_selection(struct file *file, void *priv,
-+ struct v4l2_selection *sel)
-+{
-+ struct unicam_node *node = video_drvdata(file);
-+ struct unicam_device *dev = node->dev;
-+ struct v4l2_subdev_selection sdsel = {
-+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
-+ .target = sel->target,
-+ .flags = sel->flags,
-+ .r = sel->r,
-+ };
-+
-+ return v4l2_subdev_call(dev->sensor, pad, set_selection, NULL, &sdsel);
-+}
-+
-+static int unicam_g_selection(struct file *file, void *priv,
-+ struct v4l2_selection *sel)
-+{
-+ struct unicam_node *node = video_drvdata(file);
-+ struct unicam_device *dev = node->dev;
-+ struct v4l2_subdev_selection sdsel = {
-+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
-+ .target = sel->target,
-+ };
-+ int ret;
-+
-+ ret = v4l2_subdev_call(dev->sensor, pad, get_selection, NULL, &sdsel);
-+ if (!ret)
-+ sel->r = sdsel.r;
-+
-+ return ret;
-+}
-+
- static int unicam_enum_framesizes(struct file *file, void *priv,
- struct v4l2_frmsizeenum *fsize)
- {
-@@ -2218,6 +2251,9 @@ static const struct v4l2_ioctl_ops unica
- .vidioc_enum_framesizes = unicam_enum_framesizes,
- .vidioc_enum_frameintervals = unicam_enum_frameintervals,
-
-+ .vidioc_g_selection = unicam_g_selection,
-+ .vidioc_s_selection = unicam_s_selection,
-+
- .vidioc_g_parm = unicam_g_parm,
- .vidioc_s_parm = unicam_s_parm,
-
-@@ -2446,6 +2482,14 @@ static int register_node(struct unicam_d
- !v4l2_subdev_has_op(unicam->sensor, pad, enum_frame_size))
- v4l2_disable_ioctl(&node->video_dev, VIDIOC_ENUM_FRAMESIZES);
-
-+ if (node->pad_id == METADATA_PAD ||
-+ !v4l2_subdev_has_op(unicam->sensor, pad, set_selection))
-+ v4l2_disable_ioctl(&node->video_dev, VIDIOC_S_SELECTION);
-+
-+ if (node->pad_id == METADATA_PAD ||
-+ !v4l2_subdev_has_op(unicam->sensor, pad, get_selection))
-+ v4l2_disable_ioctl(&node->video_dev, VIDIOC_G_SELECTION);
-+
- ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
- if (ret) {
- unicam_err(unicam, "Unable to register video device.\n");