summaryrefslogtreecommitdiffstats
path: root/0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch')
-rw-r--r--0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch65
1 files changed, 0 insertions, 65 deletions
diff --git a/0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch b/0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch
deleted file mode 100644
index 76f2ce025..000000000
--- a/0001-media-uvcvideo-Prevent-setting-unavailable-flags.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 0dc68cabdb626e33d02561529e6a4c681b72a784 Mon Sep 17 00:00:00 2001
-From: Kieran Bingham <kieran.bingham@ideasonboard.com>
-Date: Wed, 21 Mar 2018 11:43:08 -0400
-Subject: [PATCH] media: uvcvideo: Prevent setting unavailable flags
-
-The addition of an extra operation to use the GET_INFO command
-overwrites all existing flags from the uvc_ctrls table. This includes
-setting all controls as supporting GET_MIN, GET_MAX, GET_RES, and
-GET_DEF regardless of whether they do or not.
-
-Move the initialisation of these control capabilities directly to the
-uvc_ctrl_fill_xu_info() call where they were originally located in that
-use case, and ensure that the new functionality in uvc_ctrl_get_flags()
-will only set flags based on their reported capability from the GET_INFO
-call.
-
-Fixes: 859086ae3636 ("media: uvcvideo: Apply flags from device to actual properties")
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
-Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
----
- drivers/media/usb/uvc/uvc_ctrl.c | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
-index 102594ec3e97..a36b4fb949fa 100644
---- a/drivers/media/usb/uvc/uvc_ctrl.c
-+++ b/drivers/media/usb/uvc/uvc_ctrl.c
-@@ -1607,14 +1607,12 @@ static int uvc_ctrl_get_flags(struct uvc_device *dev,
- ret = uvc_query_ctrl(dev, UVC_GET_INFO, ctrl->entity->id, dev->intfnum,
- info->selector, data, 1);
- if (!ret)
-- info->flags = UVC_CTRL_FLAG_GET_MIN | UVC_CTRL_FLAG_GET_MAX
-- | UVC_CTRL_FLAG_GET_RES | UVC_CTRL_FLAG_GET_DEF
-- | (data[0] & UVC_CONTROL_CAP_GET ?
-- UVC_CTRL_FLAG_GET_CUR : 0)
-- | (data[0] & UVC_CONTROL_CAP_SET ?
-- UVC_CTRL_FLAG_SET_CUR : 0)
-- | (data[0] & UVC_CONTROL_CAP_AUTOUPDATE ?
-- UVC_CTRL_FLAG_AUTO_UPDATE : 0);
-+ info->flags |= (data[0] & UVC_CONTROL_CAP_GET ?
-+ UVC_CTRL_FLAG_GET_CUR : 0)
-+ | (data[0] & UVC_CONTROL_CAP_SET ?
-+ UVC_CTRL_FLAG_SET_CUR : 0)
-+ | (data[0] & UVC_CONTROL_CAP_AUTOUPDATE ?
-+ UVC_CTRL_FLAG_AUTO_UPDATE : 0);
-
- kfree(data);
- return ret;
-@@ -1689,6 +1687,9 @@ static int uvc_ctrl_fill_xu_info(struct uvc_device *dev,
-
- info->size = le16_to_cpup((__le16 *)data);
-
-+ info->flags = UVC_CTRL_FLAG_GET_MIN | UVC_CTRL_FLAG_GET_MAX
-+ | UVC_CTRL_FLAG_GET_RES | UVC_CTRL_FLAG_GET_DEF;
-+
- ret = uvc_ctrl_get_flags(dev, ctrl, info);
- if (ret < 0) {
- uvc_trace(UVC_TRACE_CONTROL,
---
-2.17.1
-