linux_dsm_epyc7002/drivers/media/usb
Aviv Greenberg 9fae30acde [media] uvcvideo: Remove extra commit on resume()
The UVC spec is a bit vague wrt devices using bulk endpoints,
specifically, how to signal to a device to start streaming.

For devices using isoc endpoints, the sequence for start streaming is:
1) The host sends PROBE_CONTROL(SET_CUR) PROBE_CONTROL(GET_CUR)
2) Host selects desired config and calls COMMIT_CONTROL(SET_CUR)
3) Host selects an alt interface other then zero - e.g SELECT_ALTERNATE_INTERFACE(1)
4) The device starts streaming

However for devices using bulk endpoints, there must be *no* alt interface
other than setting zero. From the UVC spec:
"A VideoStreaming interface containing a bulk endpoint for streaming shall
support only alternate setting zero. Additional alternate settings containing
bulk endpoints are not permitted in a device that is compliant with the Video
Class specification."

So for devices using bulk endpoints, step #3 above is irrelevant, and thus
cannot be used as an indication for the device to start streaming.
So in practice, such devices start streaming immediately after a
COMMIT_CONTROL(SET_CUR).

In the uvc resume() handler, an unsolicited commit is sent, which causes
devices using bulk endpoints to start streaming unintentionally.

This patch modifies resume() handler to send a commit only if streaming
needs to be reestablished, i.e if the device was actually streaming before is
was suspended.

Signed-off-by: Aviv Greenberg <aviv.d.greenberg@intel.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-01-27 10:39:17 -02:00
..
airspy [media] airspy: enhance sample rate debug calculation precision 2014-09-21 16:42:33 -03:00
as102 [media] as102: fix endiannes casts 2014-09-26 06:47:52 -03:00
au0828 [media] au0828: Use setup_timer 2015-01-27 10:03:59 -02: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] media: drivers shouldn't touch debug field in video_device 2014-12-23 10:29:04 -02:00
dvb-usb Linux 3.19-rc6 2015-01-27 09:39:34 -02:00
dvb-usb-v2 [media] mn88472: calculate the IF register values 2014-12-23 14:46:02 -02:00
em28xx [media] em28xx-video: fix missing newlines 2014-12-23 14:46:08 -02:00
go7007 [media] usb: Make use of media_bus_format enum 2014-11-14 17:54:28 -02:00
gspca media updates for v3.18-rc1 2014-10-10 22:04:49 -04:00
hackrf [media] hackrf: harmless off by one in debug code 2014-10-21 08:56:52 -02:00
hdpvr [media] hdpvr: reduce memory footprint when debugging 2014-09-23 16:13:36 -03:00
msi2500 [media] msi2500: remove unneeded spinlock irq flags initialization 2014-09-21 16:42:35 -03:00
pvrusb2 [media] usb: pvrusb2: pvrusb2-hdw: Remove unused function 2015-01-27 10:11:19 -02:00
pwc [media] pwc: fix sparse warning 2014-09-03 09:55:43 -03:00
s2255 [media] s2255drv: Use setup_timer 2015-01-27 10:04:18 -02:00
siano [media] usb drivers: use %zu instead of %zd 2014-09-26 06:51:00 -03:00
stk1160 [media] media: drivers shouldn't touch debug field in video_device 2014-12-23 10:29:04 -02:00
stkwebcam [media] media: drivers shouldn't touch debug field in video_device 2014-12-23 10:29:04 -02:00
tm6000 [media] media: drivers shouldn't touch debug field in video_device 2014-12-23 10:29:04 -02:00
ttusb-budget media: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
ttusb-dec [media] ttusb-dec: buffer overflow in ioctl 2014-09-23 16:13:37 -03:00
usbtv [media] Media: USB: usbtv: Fixed all coding style issues in usbtv source files 2014-09-23 16:13:44 -03:00
usbvision [media] usbvision: Use setup_timer 2015-01-27 10:08:03 -02:00
uvc [media] uvcvideo: Remove extra commit on resume() 2015-01-27 10:39:17 -02:00
zr364xx [media] media: drivers shouldn't touch debug field in video_device 2014-12-23 10:29:04 -02:00
Kconfig [media] tlg2300: move to staging in preparation for removal 2014-12-16 23:21:43 -02:00
Makefile [media] tlg2300: move to staging in preparation for removal 2014-12-16 23:21:43 -02:00