diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-18 18:04:33 +0100 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-19 07:17:21 +0100 |
commit | 62b7f5931c54e96fca56dd8761b0e466d355c881 (patch) | |
tree | 1258b392752379833a075df006c2f6d7ac4be51d /target/linux/bcm27xx/patches-5.4/950-0693-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch | |
parent | 76d1168d0d4b9d76e2ad78c0fc6b255561deb284 (diff) | |
download | upstream-62b7f5931c54e96fca56dd8761b0e466d355c881.tar.gz upstream-62b7f5931c54e96fca56dd8761b0e466d355c881.tar.bz2 upstream-62b7f5931c54e96fca56dd8761b0e466d355c881.zip |
bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit f07e572f64)
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0693-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0693-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0693-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch b/target/linux/bcm27xx/patches-5.4/950-0693-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-0693-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"); |