linux/drivers/media/video/gspca
Hans de Goede 314b3e0881 [media] gspca: submit interrupt urbs *after* isoc urbs
Currently gspca supported usb-1.1 webcams for which we support the input
button through an interrupt endpoint won't stream (not enough bandwidth
error) when used through an USB-2.0 hub.

After much debugging I've found out that the cause for this is that the
ehci-sched.c schedeling code does not like it when there are already urb's
scheduled when (large) isoc urbs are queued. By moving the submission
of the interrupt urbs to after submitting the isoc urbs the camera
starts working again through usb-2.0 hubs.

Note that this does not fix isoc. streaming through a usb-hub while another
1.1 usb device (like the microphone of the same cam) is also active
at the same time :(

I've spend a long time analyzing the linux kernel ehci scheduler code,
resulting in this (long) mail:
http://www.spinics.net/lists/linux-usb/msg37982.html

The conclusion of the following mail thread is that yes there are several
issues when using usb-1.1 devices through a usb-2.0 hub, but these are not
easily fixable in the current code. Fixing this in ehci-sched.c requires
an almost full rewrite, which is not bound to happen anytime soon.

So with this patch gspca driven usb-1.1 webcams will atleast work when
connected through an usb-2.0 hub when the microphone is not used.

As an added bonus this patch avoids extra destroy/create input urb cycles
when we end up falling back to a lower speed alt setting because of bandwidth
limitations.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-12-29 08:16:30 -02:00
..
gl860 [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
m5602 [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
stv06xx [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
benq.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
coarse_expo_autogain.h V4L/DVB: gscpa_sonixb: Differentiate between sensors with a coarse and fine expo ctrl 2010-02-26 15:11:08 -03:00
conex.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
cpia1.c V4L/DVB: gspca - cpia1: Fix compilation warning when gspca debug disabled 2010-10-21 01:06:18 -02:00
etoms.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
finepix.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
gspca.c [media] gspca: submit interrupt urbs *after* isoc urbs 2010-12-29 08:16:30 -02:00
gspca.h [media] gspca - main: New video control mechanism 2010-10-21 01:18:27 -02:00
jeilinj.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
jpeg.h V4L/DVB (11039): gspca - most jpeg subdrivers: Change the JPEG header creation. 2009-03-30 12:43:22 -03:00
Kconfig V4L/DVB: gspca_konica: New gspca subdriver for konica chipset using cams 2010-10-21 01:04:46 -02:00
konica.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
Makefile V4L/DVB: gspca_konica: New gspca subdriver for konica chipset using cams 2010-10-21 01:04:46 -02:00
mars.c [media] gspca - mars: Add illuminator controls 2010-10-21 07:55:54 -02:00
mr97310a.c V4L/DVB: gspca - mr97310a: Declare static the constant tables 2010-10-21 01:06:21 -02:00
ov519.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
ov534_9.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
ov534.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
pac207.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
pac7302.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
pac7311.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
pac_common.h V4L/DVB: gspca_pac7302: much improved exposure control 2010-02-26 15:11:09 -03:00
sn9c20x.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
sn9c2028.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
sn9c2028.h V4L/DVB (13992): gspca_sn9c2028: New gspca subdriver 2010-02-26 15:10:39 -03:00
sonixb.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
sonixj.c [media] gspca - sonixj: Better handling of the bridge registers 0x01 and 0x17 2010-12-17 18:49:11 -02:00
spca500.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
spca501.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
spca505.c V4L/DVB: gspca - spca505: Remove the eeprom write commands of NxUltra 2010-10-21 01:06:19 -02:00
spca506.c V4L/DVB (13899): gspca - all subdrivers: Make control descriptors constant. 2010-02-26 15:10:29 -03:00
spca508.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
spca561.c V4L/DVB: gspca - many subdrivers: Handle the buttons when CONFIG_INPUT=m 2010-10-21 01:06:20 -02:00
spca1528.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
sq905.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
sq905c.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
sq930x.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
stk014.c [media] gspca - stk014: Use the new video control mechanism 2010-10-21 01:18:28 -02:00
stv0680.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
sunplus.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
t613.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
tv8532.c V4L/DVB: gspca - all modules: Remove useless module load/unload messages 2010-10-21 01:05:52 -02:00
vc032x.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
w996Xcf.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00
xirlink_cit.c V4L/DVB: gspca - all modules: Display error messages when gspca debug disabled 2010-10-21 01:05:53 -02:00
zc3xx-reg.h V4L/DVB (9868): gspca - zc3xx: Remove the duplicated register names 2008-12-30 09:38:58 -02:00
zc3xx.c [media] gspca: Fix coding style issues 2010-10-21 14:50:06 -02:00