From owner-freebsd-usb@FreeBSD.ORG Sat Feb 3 09:51:25 2007 Return-Path: X-Original-To: usb@freebsd.org Delivered-To: freebsd-usb@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1D24216A401; Sat, 3 Feb 2007 09:51:25 +0000 (UTC) (envelope-from rizzo@icir.org) Received: from xorpc.icir.org (xorpc.icir.org [192.150.187.68]) by mx1.freebsd.org (Postfix) with ESMTP id E520E13C474; Sat, 3 Feb 2007 09:51:24 +0000 (UTC) (envelope-from rizzo@icir.org) Received: from xorpc.icir.org (localhost [127.0.0.1]) by xorpc.icir.org (8.12.11/8.13.6) with ESMTP id l139pOUi006818; Sat, 3 Feb 2007 01:51:24 -0800 (PST) (envelope-from rizzo@xorpc.icir.org) Received: (from rizzo@localhost) by xorpc.icir.org (8.12.11/8.12.3/Submit) id l139pOGE006817; Sat, 3 Feb 2007 01:51:24 -0800 (PST) (envelope-from rizzo) Date: Sat, 3 Feb 2007 01:51:24 -0800 From: Luigi Rizzo To: multimedia@freebsd.org Message-ID: <20070203015124.B6510@xorpc.icir.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i Cc: usb@freebsd.org Subject: Re: Call for Testers: FreeBSD webcam driver (and more) X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Feb 2007 09:51:25 -0000 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 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 here. cheers luigi