aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ricardo Ribalda <ribalda@chromium.org> 2020-12-23 14:35:18 +0100
committerGravatar Mauro Carvalho Chehab <mchehab+huawei@kernel.org> 2021-01-27 15:01:41 +0100
commitcae79e50d1222010fde8c522410c315f74d35c40 (patch)
tree235389c0a7ba4a2aaba9d23cb4392741ca596b3c
parentmedia: uvcvideo: Move guid to entity (diff)
downloadlinux-cae79e50d1222010fde8c522410c315f74d35c40.tar.gz
linux-cae79e50d1222010fde8c522410c315f74d35c40.tar.bz2
linux-cae79e50d1222010fde8c522410c315f74d35c40.zip
media: uvcvideo: Allow extra entities
Increase the size of the id, to avoid collisions with entities implemented by the driver that are not part of the UVC device. Entities exposed by the UVC device use IDs 0-255, extra entities implemented by the driver (such as the GPIO entity) use IDs 256 and up. Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r--drivers/media/usb/uvc/uvc_driver.c2
-rw-r--r--drivers/media/usb/uvc/uvcvideo.h7
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index be9700b422f6..dd2e4998e564 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -1024,7 +1024,7 @@ static const u8 uvc_media_transport_input_guid[16] =
UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT;
static const u8 uvc_processing_guid[16] = UVC_GUID_UVC_PROCESSING;
-static struct uvc_entity *uvc_alloc_entity(u16 type, u8 id,
+static struct uvc_entity *uvc_alloc_entity(u16 type, u16 id,
unsigned int num_pads, unsigned int extra_size)
{
struct uvc_entity *entity;
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index 459b2450accf..2643d9adfd4a 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -301,7 +301,12 @@ struct uvc_entity {
* chain. */
unsigned int flags;
- u8 id;
+ /*
+ * Entities exposed by the UVC device use IDs 0-255, extra entities
+ * implemented by the driver (such as the GPIO entity) use IDs 256 and
+ * up.
+ */
+ u16 id;
u16 type;
char name[64];
u8 guid[16];