[PATCH] uvc: add support for the Kaiweets KTI-W02 infrared camera

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



- adds support for the D3DFMT_R5G6B5 bitmap format (just RGBP but with
a different GUID)
- adds a quirk for the Kaiweets camera which uses it

The camera uses an NXP chipset (product ID 0x1fc9), but I can't find
any references to a device with vendor ID 0x009b. It may be specific
to the Kaiweets camera.

diff --git a/drivers/media/common/uvc.c b/drivers/media/common/uvc.c
index c54c2268f..c12d58932 100644
--- a/drivers/media/common/uvc.c
+++ b/drivers/media/common/uvc.c
@@ -96,6 +96,10 @@ static const struct uvc_format_desc uvc_fmts[] = {
         .guid        = UVC_GUID_FORMAT_RGBP,
         .fcc        = V4L2_PIX_FMT_RGB565,
     },
+    {
+        .guid        = UVC_GUID_FORMAT_D3DFMT_R5G6B5,
+        .fcc        = V4L2_PIX_FMT_RGB565,
+    },
     {
         .guid        = UVC_GUID_FORMAT_BGR3,
         .fcc        = V4L2_PIX_FMT_BGR24,
diff --git a/drivers/media/usb/uvc/uvc_driver.c
b/drivers/media/usb/uvc/uvc_driver.c
index f0febdc08..5a29f6970 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -3072,6 +3072,15 @@ static const struct usb_device_id uvc_ids[] = {
       .bInterfaceSubClass    = 1,
       .bInterfaceProtocol    = 0,
       .driver_info        = UVC_INFO_META(V4L2_META_FMT_D4XX) },
+    /* NXP Semiconductors IR VIDEO */
+    { .match_flags        = USB_DEVICE_ID_MATCH_DEVICE
+                | USB_DEVICE_ID_MATCH_INT_INFO,
+      .idVendor        = 0x1fc9,
+      .idProduct        = 0x009b,
+      .bInterfaceClass    = USB_CLASS_VIDEO,
+      .bInterfaceSubClass    = 1,
+      .bInterfaceProtocol    = 0,
+      .driver_info        = (kernel_ulong_t)&uvc_quirk_probe_minmax },
     /* 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) },
diff --git a/include/linux/usb/uvc.h b/include/linux/usb/uvc.h
index 88d96095b..01c3b2f45 100644
--- a/include/linux/usb/uvc.h
+++ b/include/linux/usb/uvc.h
@@ -140,6 +140,9 @@
 #define UVC_GUID_FORMAT_D3DFMT_L8 \
     {0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \
      0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_D3DFMT_R5G6B5 \
+    {0x7b, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
+     0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}
 #define UVC_GUID_FORMAT_KSMEDIA_L8_IR \
     {0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
      0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux