linux/drivers/media/usb
William Manley 17e1319fd0 [media] uvcvideo: Work around buggy Logitech C920 firmware
The uvcvideo webcam driver exposes the v4l2 control "Exposure (Absolute)"
which allows the user to control the exposure time of the webcam,
essentially controlling the brightness of the received image.  By default
the webcam automatically adjusts the exposure time automatically but the
if you set the control "Exposure, Auto"="Manual Mode" the user can fix
the exposure time.

Unfortunately it seems that the Logitech C920 has a firmware bug where
it will forget that it's in manual mode temporarily during initialisation.
This means that the camera doesn't respect the exposure time that the user
requested if they request it before starting to stream video.  They end up
with a video stream which is either too bright or too dark and must reset
the controls after video starts streaming.

This patch introduces the quirk UVC_QUIRK_RESTORE_CTRLS_ON_INIT which
causes the cached controls to be re-uploaded to the camera immediately
after initialising the camera.  This quirk is applied to the C920 to work
around this camera bug.

Signed-off-by: William Manley <will@williammanley.net>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2014-09-21 20:25:54 -03:00
..
airspy [media] airspy: enhance sample rate debug calculation precision 2014-09-21 16:42:33 -03:00
as102 [media] as102-fe: make it an independent driver 2014-08-21 15:25:30 -05:00
au0828 [media] au0828-dvb: use true/false for boolean vars 2014-09-03 17:59:21 -03:00
b2c2 [media] drivers: media: usb: b2c2: use usb_*_coherent() instead of pci_*_consistent() in flexcop-usb.c 2013-10-17 11:26:41 -03:00
cpia2 [media] media: remove the setting of the flag V4L2_FL_USE_FH_PRIO 2014-07-04 16:14:59 -03:00
cx231xx [media] cx231xx: just return 0 instead of using a var 2014-09-03 17:59:57 -03:00
dvb-usb [media] af9005: use true/false for boolean vars 2014-09-03 17:59:22 -03:00
dvb-usb-v2 [media] anysee: convert tda18212 tuner to I2C client 2014-09-21 19:59:13 -03:00
em28xx [media] em28xx: convert tda18212 tuner to I2C client 2014-09-21 19:59:57 -03:00
go7007 [media] go7007: fix sparse warnings 2014-09-03 09:33:24 -03:00
gspca [media] trivial: drivers/media/usb/gspca/gspca.h: indent with TABs, not spaces 2014-09-08 10:00:57 -03:00
hdpvr Merge commit '67dd8f35c2d8ed80f26c9654b474cffc11c6674d' into patchwork 2014-07-22 02:03:59 -03:00
msi2500 [media] msi2500: remove unneeded spinlock irq flags initialization 2014-09-21 16:42:35 -03:00
pvrusb2 [media] media: pvrusb2: make logging code sane 2014-07-17 20:05:38 -03:00
pwc [media] pwc: fix sparse warning 2014-09-03 09:55:43 -03:00
s2255 [media] s2255drv: fix sparse warning 2014-09-03 09:54:16 -03:00
siano [media] siano: add support for PCTV 77e 2014-08-21 15:25:27 -05:00
stk1160 [media] media: remove the setting of the flag V4L2_FL_USE_FH_PRIO 2014-07-04 16:14:59 -03:00
stkwebcam [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
tlg2300 [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
tm6000 [media] rc-core: rename dev->scanmask to dev->scancode_mask 2014-07-25 19:10:43 -03:00
ttusb-budget media: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
ttusb-dec media: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
usbtv [media] usbtv: fix sparse warnings 2014-09-03 09:37:04 -03:00
usbvision [media] drivers/media/usb/usbvision/usbvision-core.c: Remove useless return variables 2014-07-04 15:35:02 -03:00
uvc [media] uvcvideo: Work around buggy Logitech C920 firmware 2014-09-21 20:25:54 -03:00
zr364xx [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
Kconfig [media] as102: promote it out of staging 2014-08-21 15:25:28 -05:00
Makefile [media] as102: promote it out of staging 2014-08-21 15:25:28 -05:00