cvs commit: src/sys/dev/usb usb.c
Maxim Sobolev
sobomax at portaone.com
Sat Mar 26 11:43:24 PST 2005
Yes, this patch helps. Thank you very much!
-Maxim
Ian Dowse wrote:
> In message <20050326160107.GA92727 at 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)
> {
>
>
>
More information about the cvs-src
mailing list