From owner-freebsd-usb@FreeBSD.ORG Fri Dec 3 22:08:33 2004 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 69A8716A4CE for ; Fri, 3 Dec 2004 22:08:33 +0000 (GMT) Received: from mail.vicor-nb.com (bigwoop.vicor-nb.com [208.206.78.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3BCA743D2D for ; Fri, 3 Dec 2004 22:08:33 +0000 (GMT) (envelope-from julian@elischer.org) Received: from elischer.org (julian.vicor-nb.com [208.206.78.97]) by mail.vicor-nb.com (Postfix) with ESMTP id 1FFB87A452; Fri, 3 Dec 2004 14:08:33 -0800 (PST) Message-ID: <41B0E3E0.4030207@elischer.org> Date: Fri, 03 Dec 2004 14:08:32 -0800 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030516 X-Accept-Language: en, hu MIME-Version: 1.0 To: "M. Warner Losh" References: <41B0C118.8070001@elischer.org> <20041203.133422.67680751.imp@bsdimp.com> <41B0DD18.9080300@elischer.org> <20041203.144432.89673091.imp@bsdimp.com> In-Reply-To: <20041203.144432.89673091.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-usb@FreeBSD.ORG Subject: Re: Question about pipes and ugen X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Dec 2004 22:08:33 -0000 M. Warner Losh wrote: >In message: <41B0DD18.9080300@elischer.org> > Julian Elischer writes: >: >: >: M. Warner Losh wrote: >: >: >In message: <41B0C118.8070001@elischer.org> >: > Julian Elischer writes: >: >: I didn't say stack.. I said libusb (excepty I spelled it usblib) >: > >: >OK. I got confused... >: > >: >: it recovers on several machines where FreeBSD looses communications with >: >: the target after an error. >: > >: >Hmmmm. Actually, FreeBSD does do the ClearFeature(Halt) on opening of >: >pipes by the driver (which ugen does each time the pipe subdevice is >: >opened). ClearFeature(Stall) was unfortunately typed from memory >: >rather than looking at the standard (section 9.4.5). What were you >: >thinking about changing in this area? >: > >: >: BTW it does the halt too late.. by that time it has already tried to do >: other opertations that >: have probably timed out (at least on the stupid device I have) so it's >: aborted before it ever gets >: to the ClearFeature(Halt). > >It does this as soon as the driver opens the pipe. Nothing can have >happened on the pipe before that. I don't understand what you are >saying here. It might also do it other times, but it definitely does >it on open... > when we open the ugen device the first thing that happens is that the device fetches some descriptors.. some of these requests fail .. I'm still investigating however. it would be good thuogh if a timeout woudl result in the clearing of the halt state if it exists as well as an open.. we may not want to have to close the device.. (as I said.. openning it again fails :-/) The reason I'm still investigating is because it's almost 100% that this is because of the incredibally broken device so I don't want to do anything that is detrimental to well behaved devices.. I hope to have more info next week. When the device times out on endpoint 3, Linux (thorugh libusb) issues a ClearFeature(Halt) which seems to get everything going again. FreeBSD doesn't, so we have to power teh device down and re-power it (!yuk!). There must be other devices that need this or Linux wouldn't do it. I'm looking whether the kernel couldn't take care of this or whether we shoudl implement it in libusb like Linux does. > >Warner > >