The Dino-Lite cameras are equipped with LED lights that can be switched
on and off by setting a proprietary control. For this control, the
camera reports a length of 1 byte, but actually the value set by the
original Windows driver is 3 byte long. This makes it impossible to
toggle the camera lights from uvcvideo, as the length from GET_LEN is
trusted as being the right one.
    
This patch makes GET_LEN indicate a length of 3 instead of 1 for this
specific device and control cs/unit.

This patch is a follow-up of a previous patch [1] sent in June, that
went unnoticed but addresses the same issue. It uses a table of local
fixups instead of a module quirk. If you prefer this approach, please
tell me, so I can rework it a bit and submit it in place of this one.

[1] https://patchwork.kernel.org/patch/9764937/

Alexandre Macabies (1):
  media: uvcvideo: Add quirk to support light switch on Dino-Lite
    cameras

 drivers/media/usb/uvc/uvc_driver.c |  9 +++++++++
 drivers/media/usb/uvc/uvc_video.c  | 10 ++++++++++
 drivers/media/usb/uvc/uvcvideo.h   |  1 +
 3 files changed, 20 insertions(+)

-- 
2.15.1

Reply via email to