struct uvc_format_desc *fmtdesc;
        struct uvc_frame *frame;
        const unsigned char *start = buffer;
+       unsigned int width_multiplier = 1;
        unsigned int interval;
        unsigned int i, n;
        __u8 ftype;
                }
 
                format->bpp = buffer[21];
+
+               /* Some devices report a format that doesn't match what they
+                * really send.
+                */
+               if (dev->quirks & UVC_QUIRK_FORCE_Y8) {
+                       if (format->fcc == V4L2_PIX_FMT_YUYV) {
+                               strlcpy(format->name, "Greyscale 8-bit (Y8  )",
+                                       sizeof(format->name));
+                               format->fcc = V4L2_PIX_FMT_GREY;
+                               format->bpp = 8;
+                               width_multiplier = 2;
+                       }
+               }
+
                if (buffer[2] == UVC_VS_FORMAT_UNCOMPRESSED) {
                        ftype = UVC_VS_FRAME_UNCOMPRESSED;
                } else {
 
                frame->bFrameIndex = buffer[3];
                frame->bmCapabilities = buffer[4];
-               frame->wWidth = get_unaligned_le16(&buffer[5]);
+               frame->wWidth = get_unaligned_le16(&buffer[5])
+                             * width_multiplier;
                frame->wHeight = get_unaligned_le16(&buffer[7]);
                frame->dwMinBitRate = get_unaligned_le32(&buffer[9]);
                frame->dwMaxBitRate = get_unaligned_le32(&buffer[13]);
          .bInterfaceProtocol   = 0,
          .driver_info          = UVC_QUIRK_PROBE_MINMAX
                                | UVC_QUIRK_IGNORE_SELECTOR_UNIT },
+       /* Oculus VR Positional Tracker DK2 */
+       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
+                               | USB_DEVICE_ID_MATCH_INT_INFO,
+         .idVendor             = 0x2833,
+         .idProduct            = 0x0201,
+         .bInterfaceClass      = USB_CLASS_VIDEO,
+         .bInterfaceSubClass   = 1,
+         .bInterfaceProtocol   = 0,
+         .driver_info          = UVC_QUIRK_FORCE_Y8 },
        /* Generic USB Video Class */
        { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },
        {}