[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250429-keep-sorted-v1-1-2fa3538c0315@chromium.org>
Date: Tue, 29 Apr 2025 13:47:25 +0000
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, Ricardo Ribalda <ribalda@...omium.org>
Subject: [PATCH 1/2] media: uvcvideo: Rewrite uvc_ids for keep-sorted.
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
---
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
Powered by blists - more mailing lists