]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
media: uvcvideo: Fix power line control for Shine-Optics Camera
authorRicardo Ribalda <ribalda@chromium.org>
Mon, 8 Jan 2024 14:04:16 +0000 (14:04 +0000)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 19 Apr 2024 10:43:36 +0000 (13:43 +0300)
The device does not implement the power line frequency control
correctly. It is a UVC 1.5 device, but implements the control as a UVC
1.1 device.

Add the corresponding control mapping override.

Bus 003 Device 002: ID 3277:009e Shine-Optics Integrated Camera
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x3277
  idProduct          0x009e
  bcdDevice            0.01
  iManufacturer           3 Shine-Optics
  iProduct                1 Integrated Camera
  iSerial                 2 0001

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20240108-shine-v2-1-ddff959dab89@chromium.org
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/media/usb/uvc/uvc_driver.c

index 91a41aa3ced24b3ea84fd40bf6f45c7b6fcfc549..4bf21678149ed75ac3effc0d486e92fde9958e62 100644 (file)
@@ -3061,6 +3061,15 @@ static const struct usb_device_id uvc_ids[] = {
          .bInterfaceSubClass   = 1,
          .bInterfaceProtocol   = 0,
          .driver_info          = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
+       /* Shine-Optics Integrated Camera */
+       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
+                               | USB_DEVICE_ID_MATCH_INT_INFO,
+         .idVendor             = 0x3277,
+         .idProduct            = 0x009e,
+         .bInterfaceClass      = USB_CLASS_VIDEO,
+         .bInterfaceSubClass   = 1,
+         .bInterfaceProtocol   = UVC_PC_PROTOCOL_15,
+         .driver_info          = (kernel_ulong_t)&uvc_ctrl_power_line_uvc11 },
        /* Acer EasyCamera */
        { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
                                | USB_DEVICE_ID_MATCH_INT_INFO,