Call for Testers: FreeBSD webcam driver (and more)
rizzo at icir.org
Sat Feb 3 09:51:25 UTC 2007
someone (in Bcc) asked me the following question and
i think the explaination is of general interest.
Am cross-posting the usb list as maybe people there can
confirm this or give more details.
On Sat, Feb 03, 2007 at 01:00:31AM -0500, ... wrote:
> On 2/2/07, Luigi Rizzo <rizzo at icir.org> wrote:
> > On Sat, Feb 03, 2007 at 12:32:17AM +0000, Florent Thoumie wrote:
> > > usb1: *** WARNING: opening low/full speed device, this does not work
> > yet.
> > this is a [annoying] problem with the freebsd drivers, not with gspca.
> > try connect the camera directly to the ports on your usb
> > controller instead of the external hub.
> What is the technical problem that makes this happen and what is the order
> of effort required to fix it. I have also come up against this and would
> take a stab at it if it were within my reach.
The message comes from ehci.c and is not very informative.
>From what i read in the ehci.c source, there is no
support at all for ISOChronous transfers in that driver.
In fact, the above message is triggered in an early stage of the _open()
routine, when you ask for a low or full speed ISOC transfer;
if you go past it because you request a high speed isoc transfer,
you hit another error later in the same routine because some
functions are not implemented.
I have absolutely no idea how much time would take to fix this,
have never looked at the specs of the controllers.
Now if you wonder why connecting directly to the main board (instead
of going through a hub) works, i think the reason is the following
(hope i am not spreading misinformation):
>From what i have read, on the mainboard there are two controllers
(ehci and uhci) connected in parallel, i.e. really sharing the
wires, and there is some form of arbitration so that USB2 devices
(which can do high speed requests) talk to ehci, whereas USB1 devices
talk to uhci.
If you have a USB2 hub in the middle, chances are that the hub does
connects to ehci hiding the real nature of devices downstream. Maybe
(not sure) that a workaround could be to put a USB1 hub in the
middle. If you can find one, they should cost close to nothing these
days. Unfortunately i cannot try it because i only have a USB2 hub
More information about the freebsd-multimedia