Re: OHCI: USB webcam works, but not on USB Hub

From: Robert Hancock
Date: Tue Apr 03 2007 - 10:34:58 EST


Michael Bueker wrote:
[please CC me on this thread]

Hi everyone,

My system has an nForce4 motherboard with an OHCI USB controller.

I'm using a USB Webcam with the gspca driver (from
http://mxhaard.free.fr/download.html), which has been working fine with the
latest kernels.

Today, I connected a USB Hub and the camera to it, after which it stopped
working with the error message:
ERROR opening V4L interface
: Function not implemented
However, it works fine when not connected to the Hub, but a motherboard's own
USB port. The Hub also works fine with any other USB device.

I googled around for a solution and found one for an older version of my
driver, where the (apparently very ugly) fix was to manually set a fixed
bandwidth for the USB device, instead of using a somehow other determined
value. See this posting for a more elaborate description:
http://lists.zerezo.com/spca50x-devs/msg00664.html

Now, I'm writing to this list because one of the followups to that post
(http://lists.zerezo.com/spca50x-devs/msg00665.html) states that this is due
to a problem with the Linux USB layer:
pls file a bug "ohci driver can't handle low+fullspeed devices on the same
root hub" to linux usb devel list.

That's about all I can tell you for now. I've attached two outputs of
lsusb -vv, one with the hub attached, with the camera and a USB stick
connected (notice the error message), and one without the hub and the
camera connected directly (which is the setup where it works fine).

I looked into this at one point previously with spca5xx. Certainly in my case it was no fault of the kernel. The isochronous descriptor that the driver was deciding to use required so much bandwidth that it couldn't be accomodated if anything else was using timeslots on the bus - even a USB keyboard/mouse on the same hub would prevent it from getting enough bandwidth.

Essentially the driver should fallback to a lower-bandwidth descriptor if the one it tries to use fails rather than just bailing out.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/