[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CANiDSCt-v2VUAuNKDk43Cf8MF+_xuaxTkw4reupcfH7VzFPnWQ@mail.gmail.com>
Date: Tue, 29 Apr 2025 20:21:45 +0200
From: Ricardo Ribalda <ribalda@...omium.org>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>, Hans de Goede <hdegoede@...hat.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>
Cc: Hans Verkuil <hans@...erkuil.nl>, linux-media@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] media: uvcvideo: Rewrite uvc_ids for keep-sorted.
On Tue, 29 Apr 2025 at 15:47, Ricardo Ribalda <ribalda@...omium.org> wrote:
>
> keep-sorted is a tool to check if the code is sorted. If we enable it in
> media-ci we will automate some of the boring comments.
>
> This is a preparation patch to enable keep-sorted. No functional change
> is expected. It has been tested with objdump:
> ribalda@...alda:~/work/linux$ diff drivers/media/usb/uvc/uvc_driver.o.S drivers/media/usb/uvc/uvc_driver.o.new.S
> 2c2
> < drivers/media/usb/uvc/uvc_driver.o: file format elf64-x86-64
Signed-off-by: Ricardo Ribalda <ribalda@...omium.org>
> ---
> drivers/media/usb/uvc/uvc_driver.c | 618 +++++++++++++++++++++++--------------
> 1 file changed, 386 insertions(+), 232 deletions(-)
>
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index 107e0fafd80f54ec98c9657e5d58d17a6ed8c02f..7ced8980543af5a207938d12a5eb833ee8a34c38 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2501,8 +2501,7 @@ static const struct uvc_device_info uvc_quirk_force_y8 = {
> */
> static const struct usb_device_id uvc_ids[] = {
> /* Quanta ACER HD User Facing */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> - | USB_DEVICE_ID_MATCH_INT_INFO,
> + {
> .idVendor = 0x0408,
> .idProduct = 0x4033,
> .bInterfaceClass = USB_CLASS_VIDEO,
> @@ -2510,10 +2509,12 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceProtocol = UVC_PC_PROTOCOL_15,
> .driver_info = (kernel_ulong_t)&(const struct uvc_device_info){
> .uvc_version = 0x010a,
> - } },
> - /* Quanta ACER HD User Facing */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + },
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Quanta ACER HD User Facing */
> + {
> .idVendor = 0x0408,
> .idProduct = 0x4035,
> .bInterfaceClass = USB_CLASS_VIDEO,
> @@ -2521,530 +2522,648 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceProtocol = UVC_PC_PROTOCOL_15,
> .driver_info = (kernel_ulong_t)&(const struct uvc_device_info){
> .uvc_version = 0x010a,
> - } },
> - /* LogiLink Wireless Webcam */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + },
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* LogiLink Wireless Webcam */
> + {
> .idVendor = 0x0416,
> .idProduct = 0xa91a,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Genius eFace 2025 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Genius eFace 2025 */
> + {
> .idVendor = 0x0458,
> .idProduct = 0x706e,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Microsoft Lifecam NX-6000 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Microsoft Lifecam NX-6000 */
> + {
> .idVendor = 0x045e,
> .idProduct = 0x00f8,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Microsoft Lifecam NX-3000 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Microsoft Lifecam NX-3000 */
> + {
> .idVendor = 0x045e,
> .idProduct = 0x0721,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Microsoft Lifecam VX-7000 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Microsoft Lifecam VX-7000 */
> + {
> .idVendor = 0x045e,
> .idProduct = 0x0723,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Logitech, Webcam C910 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech, Webcam C910 */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x0821,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_WAKE_AUTOSUSPEND)},
> - /* Logitech, Webcam B910 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_WAKE_AUTOSUSPEND),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech, Webcam B910 */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x0823,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_WAKE_AUTOSUSPEND)},
> - /* Logitech Quickcam Fusion */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_WAKE_AUTOSUSPEND),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam Fusion */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c1,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech Quickcam Orbit MP */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam Orbit MP */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c2,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech Quickcam Pro for Notebook */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam Pro for Notebook */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c3,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech Quickcam Pro 5000 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam Pro 5000 */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c5,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech Quickcam OEM Dell Notebook */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam OEM Dell Notebook */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c6,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech Quickcam OEM Cisco VT Camera II */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Quickcam OEM Cisco VT Camera II */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08c7,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Logitech HD Pro Webcam C920 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech HD Pro Webcam C920 */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x082d,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_RESTORE_CTRLS_ON_INIT
> - | UVC_QUIRK_INVALID_DEVICE_SOF) },
> - /* Logitech HD Pro Webcam C922 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | UVC_QUIRK_INVALID_DEVICE_SOF),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech HD Pro Webcam C922 */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x085c,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_INVALID_DEVICE_SOF) },
> - /* Logitech Rally Bar Huddle */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_INVALID_DEVICE_SOF),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Rally Bar Huddle */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x087c,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME) },
> - /* Logitech Rally Bar */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Rally Bar */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x089b,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME) },
> - /* Logitech Rally Bar Mini */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Logitech Rally Bar Mini */
> + {
> .idVendor = 0x046d,
> .idProduct = 0x08d3,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME) },
> - /* Chicony CNF7129 (Asus EEE 100HE) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_NO_RESET_RESUME),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Chicony CNF7129 (Asus EEE 100HE) */
> + {
> .idVendor = 0x04f2,
> .idProduct = 0xb071,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_RESTRICT_FRAME_RATE) },
> - /* Alcor Micro AU3820 (Future Boy PC USB Webcam) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_RESTRICT_FRAME_RATE),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Alcor Micro AU3820 (Future Boy PC USB Webcam) */
> + {
> .idVendor = 0x058f,
> .idProduct = 0x3820,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Dell XPS m1530 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Dell XPS m1530 */
> + {
> .idVendor = 0x05a9,
> .idProduct = 0x2640,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Dell SP2008WFP Monitor */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Dell SP2008WFP Monitor */
> + {
> .idVendor = 0x05a9,
> .idProduct = 0x2641,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Dell Alienware X51 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Dell Alienware X51 */
> + {
> .idVendor = 0x05a9,
> .idProduct = 0x2643,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Dell Studio Hybrid 140g (OmniVision webcam) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Dell Studio Hybrid 140g (OmniVision webcam) */
> + {
> .idVendor = 0x05a9,
> .idProduct = 0x264a,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Dell XPS M1330 (OmniVision OV7670 webcam) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Dell XPS M1330 (OmniVision OV7670 webcam) */
> + {
> .idVendor = 0x05a9,
> .idProduct = 0x7670,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Apple Built-In iSight */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Apple Built-In iSight */
> + {
> .idVendor = 0x05ac,
> .idProduct = 0x8501,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_MINMAX
> - | UVC_QUIRK_BUILTIN_ISIGHT) },
> - /* Apple FaceTime HD Camera (Built-In) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | UVC_QUIRK_BUILTIN_ISIGHT),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Apple FaceTime HD Camera (Built-In) */
> + {
> .idVendor = 0x05ac,
> .idProduct = 0x8514,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Apple Built-In iSight via iBridge */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Apple Built-In iSight via iBridge */
> + {
> .idVendor = 0x05ac,
> .idProduct = 0x8600,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* Foxlink ("HP Webcam" on HP Mini 5103) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Foxlink ("HP Webcam" on HP Mini 5103) */
> + {
> .idVendor = 0x05c8,
> .idProduct = 0x0403,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> - /* Genesys Logic USB 2.0 PC Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Genesys Logic USB 2.0 PC Camera */
> + {
> .idVendor = 0x05e3,
> .idProduct = 0x0505,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Hercules Classic Silver */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Hercules Classic Silver */
> + {
> .idVendor = 0x06f8,
> .idProduct = 0x300c,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> - /* ViMicro Vega */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* ViMicro Vega */
> + {
> .idVendor = 0x0ac8,
> .idProduct = 0x332d,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> - /* ViMicro - Minoru3D */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* ViMicro - Minoru3D */
> + {
> .idVendor = 0x0ac8,
> .idProduct = 0x3410,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> - /* ViMicro Venus - Minoru3D */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* ViMicro Venus - Minoru3D */
> + {
> .idVendor = 0x0ac8,
> .idProduct = 0x3420,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> - /* Ophir Optronics - SPCAM 620U */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_fix_bandwidth,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Ophir Optronics - SPCAM 620U */
> + {
> .idVendor = 0x0bd3,
> .idProduct = 0x0555,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Sonix Technology Co. Ltd. - 292A IPC AR0330 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Sonix Technology Co. Ltd. - 292A IPC AR0330 */
> + {
> .idVendor = 0x0c45,
> .idProduct = 0x6366,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_MJPEG_NO_EOF) },
> - /* MT6227 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_MJPEG_NO_EOF),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* MT6227 */
> + {
> .idVendor = 0x0e8d,
> .idProduct = 0x0004,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_MINMAX
> - | UVC_QUIRK_PROBE_DEF) },
> - /* IMC Networks (Medion Akoya) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | UVC_QUIRK_PROBE_DEF),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* IMC Networks (Medion Akoya) */
> + {
> .idVendor = 0x13d3,
> .idProduct = 0x5103,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* JMicron USB2.0 XGA WebCam */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* JMicron USB2.0 XGA WebCam */
> + {
> .idVendor = 0x152d,
> .idProduct = 0x0310,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Kurokesu C1 PRO */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Kurokesu C1 PRO */
> + {
> .idVendor = 0x16d0,
> .idProduct = 0x0ed1,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_MJPEG_NO_EOF) },
> - /* Syntek (HP Spartan) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_MJPEG_NO_EOF),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (HP Spartan) */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x5212,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Syntek (Samsung Q310) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (Samsung Q310) */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x5931,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Syntek (Packard Bell EasyNote MX52 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (Packard Bell EasyNote MX52 */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x8a12,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Syntek (Asus F9SG) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (Asus F9SG) */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x8a31,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Syntek (Asus U3S) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (Asus U3S) */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x8a33,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Syntek (JAOtech Smart Terminal) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Syntek (JAOtech Smart Terminal) */
> + {
> .idVendor = 0x174f,
> .idProduct = 0x8a34,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Miricle 307K */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Miricle 307K */
> + {
> .idVendor = 0x17dc,
> .idProduct = 0x0202,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Lenovo Thinkpad SL400/SL500 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Lenovo Thinkpad SL400/SL500 */
> + {
> .idVendor = 0x17ef,
> .idProduct = 0x480b,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid },
> - /* Aveo Technology USB 2.0 Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_stream_no_fid,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Aveo Technology USB 2.0 Camera */
> + {
> .idVendor = 0x1871,
> .idProduct = 0x0306,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_MINMAX
> - | UVC_QUIRK_PROBE_EXTRAFIELDS) },
> - /* Aveo Technology USB 2.0 Camera (Tasco USB Microscope) */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | UVC_QUIRK_PROBE_EXTRAFIELDS),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Aveo Technology USB 2.0 Camera (Tasco USB Microscope) */
> + {
> .idVendor = 0x1871,
> .idProduct = 0x0516,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Ecamm Pico iMage */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Ecamm Pico iMage */
> + {
> .idVendor = 0x18cd,
> .idProduct = 0xcafe,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_EXTRAFIELDS) },
> - /* Manta MM-353 Plako */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_EXTRAFIELDS),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Manta MM-353 Plako */
> + {
> .idVendor = 0x18ec,
> .idProduct = 0x3188,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* FSC WebCam V30S */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* FSC WebCam V30S */
> + {
> .idVendor = 0x18ec,
> .idProduct = 0x3288,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Arkmicro unbranded */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Arkmicro unbranded */
> + {
> .idVendor = 0x18ec,
> .idProduct = 0x3290,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def },
> - /* The Imaging Source USB CCD cameras */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_def,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* The Imaging Source USB CCD cameras */
> + {
> .idVendor = 0x199e,
> .idProduct = 0x8102,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> - .bInterfaceProtocol = 0 },
> - /* Bodelin ProScopeHR */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> - | USB_DEVICE_ID_MATCH_DEV_HI
> + .bInterfaceProtocol = 0,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Bodelin ProScopeHR */
> + {
> .idVendor = 0x19ab,
> .idProduct = 0x1000,
> .bcdDevice_hi = 0x0126,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_STATUS_INTERVAL) },
> - /* MSI StarCam 370i */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_STATUS_INTERVAL),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_DEV_HI
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* MSI StarCam 370i */
> + {
> .idVendor = 0x1b3b,
> .idProduct = 0x2951,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Generalplus Technology Inc. 808 Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Generalplus Technology Inc. 808 Camera */
> + {
> .idVendor = 0x1b3f,
> .idProduct = 0x2002,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Shenzhen Aoni Electronic Co.,Ltd 2K FHD camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Shenzhen Aoni Electronic Co.,Ltd 2K FHD camera */
> + {
> .idVendor = 0x1bcf,
> .idProduct = 0x0b40,
> .bInterfaceClass = USB_CLASS_VIDEO,
> @@ -3052,152 +3171,187 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceProtocol = 0,
> .driver_info = (kernel_ulong_t)&(const struct uvc_device_info){
> .uvc_version = 0x010a,
> - } },
> - /* SiGma Micro USB Web Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + },
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* SiGma Micro USB Web Camera */
> + {
> .idVendor = 0x1c4f,
> .idProduct = 0x3000,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_MINMAX
> - | UVC_QUIRK_IGNORE_SELECTOR_UNIT) },
> - /* Actions Microelectronics Co. Display capture-UVC05 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | UVC_QUIRK_IGNORE_SELECTOR_UNIT),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Actions Microelectronics Co. Display capture-UVC05 */
> + {
> .idVendor = 0x1de1,
> .idProduct = 0xf105,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_DISABLE_AUTOSUSPEND) },
> - /* NXP Semiconductors IR VIDEO */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_DISABLE_AUTOSUSPEND),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* NXP Semiconductors IR VIDEO */
> + {
> .idVendor = 0x1fc9,
> .idProduct = 0x009b,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> - /* Oculus VR Positional Tracker DK2 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Oculus VR Positional Tracker DK2 */
> + {
> .idVendor = 0x2833,
> .idProduct = 0x0201,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8 },
> - /* Oculus VR Rift Sensor */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Oculus VR Rift Sensor */
> + {
> .idVendor = 0x2833,
> .idProduct = 0x0211,
> .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8 },
> - /* GEO Semiconductor GC6500 */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8,
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* GEO Semiconductor GC6500 */
> + {
> .idVendor = 0x29fe,
> .idProduct = 0x4d53,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_FORCE_BPP) },
> - /* Insta360 Link */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_FORCE_BPP),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Insta360 Link */
> + {
> .idVendor = 0x2e1a,
> .idProduct = 0x4c01,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_DISABLE_AUTOSUSPEND) },
> - /* Intel D410/ASR depth camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_DISABLE_AUTOSUSPEND),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D410/ASR depth camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0ad2,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D415/ASRC depth camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D415/ASRC depth camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0ad3,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D430/AWG depth camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D430/AWG depth camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0ad4,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel RealSense D4M */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel RealSense D4M */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0b03,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D435/AWGC depth camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D435/AWGC depth camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0b07,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D435i depth camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D435i depth camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0b3a,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D405 Depth Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D405 Depth Camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0b5b,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D455 Depth Camera */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D455 Depth Camera */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x0b5c,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> - /* Intel D421 Depth Module */
> - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> + /* Intel D421 Depth Module */
> + {
> .idVendor = 0x8086,
> .idProduct = 0x1155,
> .bInterfaceClass = USB_CLASS_VIDEO,
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> - .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX),
> + .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + },
> /* Generic USB Video Class */
> { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) },
> { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) },
>
> --
> 2.49.0.901.g37484f566f-goog
>
--
Ricardo Ribalda
Powered by blists - more mailing lists