Re: [PATCH RFC] USB: Add HCD fastboot

From: Alan Stern
Date: Wed Aug 06 2008 - 18:35:08 EST


On Wed, 6 Aug 2008, Simon Arlott wrote:

> > Doing the HCD initcalls last certainly ought to work.
>
> Right - so then all that's needed is to move usb/ before most other things that
> take a while to init, and it has some time to initialise usb devices in the
> background.

Not exactly -- you should move most of usb/ forward so that it comes
before usb/host/. Or alternatively move usb/host/ later so that it
comes after the rest of usb/.

> > So what exactly do you recommend?
>
> I'm not an expert on what can be done with the Makefile process, perhaps there's
> an easier way to move things around based on a config option. If host init is
> moved before device init for everyone, wouldn't there be too many side effects?

Doesn't the host init _already_ come before device init? If host init
were moved _after_ device init, I don't think there would be a lot of
side effects. But it's hard to be sure without trying it.

> Lack of a keyboard makes it impossible to do anything if the module fails to
> load... as I understand it when the HCD init runs, any BIOS emulation stops?

That's right. The host driver kicks the BIOS off the hardware.

> Although if HCD is a module too...
>
> >> If even one device driver and the hcd is compiled in, they'd need to
> >> wait for every USB device to finish init before the usbhid probe could complete.
> >
> > What if usbhid is the one device driver that is compiled in? :-)
>
> That was the situation I was thinking of - surely that would be compiled in
> if the HCDs were?

I noticed in your logs earlier that some of your USB drivers were
compiled in and others weren't. Maybe if _all_ of them were compiled
in you wouldn't experience as much contention and the init delays would
be shorter.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/