From owner-cvs-src@FreeBSD.ORG Sat Mar 26 19:43:24 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7DAC116A4CE; Sat, 26 Mar 2005 19:43:24 +0000 (GMT) Received: from www.portaone.com (support.portaone.com [195.70.151.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id ACC9743D1D; Sat, 26 Mar 2005 19:43:23 +0000 (GMT) (envelope-from sobomax@portaone.com) Received: from [192.168.0.254] ([192.168.2.2]) (authenticated bits=0) by www.portaone.com (8.12.11/8.12.11) with ESMTP id j2QJhK82024060 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 26 Mar 2005 20:43:21 +0100 (CET) (envelope-from sobomax@portaone.com) Message-ID: <4245BB58.3030206@portaone.com> Date: Sat, 26 Mar 2005 21:43:20 +0200 From: Maxim Sobolev Organization: Porta Software Ltd User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Ian Dowse References: <200503261644.aa61215@salmon.maths.tcd.ie> In-Reply-To: <200503261644.aa61215@salmon.maths.tcd.ie> Content-Type: text/plain; charset=KOI8-U; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on www.portaone.com X-Virus-Status: Clean cc: cvs-src@FreeBSD.ORG cc: src-committers@FreeBSD.ORG cc: cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/dev/usb usb.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Mar 2005 19:43:24 -0000 Yes, this patch helps. Thank you very much! -Maxim Ian Dowse wrote: > In message <20050326160107.GA92727@www.portaone.com>, Maxim Sobolev writes: > >>Please note that when I take ehci out of kernel those devices are >>attached before root fs is mounted. If it can help I can send you >>dmesg without ehci. > > > Ah, for directly connected low/full speed devices I guess we need > to do the ehci explore in order to hand the port over to the companion > controller. > > Below is a possible solution to this. Alternatively even just > changing the usb_coldexplist TAILQ_INSERT_TAIL to a TAILQ_INSERT_HEAD > would probably do the trick. > > Let me know if this helps. > > Thanks, > > Ian > > Index: usb.c > =================================================================== > RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usb.c,v > retrieving revision 1.105 > diff -u -r1.105 usb.c > --- usb.c 19 Mar 2005 19:27:38 -0000 1.105 > +++ usb.c 26 Mar 2005 16:33:37 -0000 > @@ -301,8 +301,14 @@ > * the keyboard will not work until after cold boot. > */ > #if defined(__FreeBSD__) > - if (cold) > - TAILQ_INSERT_TAIL(&usb_coldexplist, sc, sc_coldexplist); > + if (cold) { > + /* Explore high-speed busses now, but defer others. */ > + if (speed == USB_SPEED_HIGH) > + dev->hub->explore(sc->sc_bus->root_hub); > + else > + TAILQ_INSERT_TAIL(&usb_coldexplist, sc, > + sc_coldexplist); > + } > #else > if (cold && (sc->sc_dev.dv_cfdata->cf_flags & 1)) > dev->hub->explore(sc->sc_bus->root_hub); > @@ -952,7 +958,7 @@ > sc->sc_port.device = NULL; > } > > -/* Explore all USB busses at the end of device configuration. */ > +/* Explore USB busses at the end of device configuration. */ > Static void > usb_cold_explore(void *arg) > { > > >