Date: Sat, 26 Mar 2005 21:43:20 +0200 From: Maxim Sobolev <sobomax@portaone.com> To: Ian Dowse <iedowse@maths.tcd.ie> Cc: cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/dev/usb usb.c Message-ID: <4245BB58.3030206@portaone.com> In-Reply-To: <200503261644.aa61215@salmon.maths.tcd.ie> References: <200503261644.aa61215@salmon.maths.tcd.ie>
next in thread | previous in thread | raw e-mail | index | archive | help
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)
> {
>
>
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4245BB58.3030206>
