Ok,

Thanks to those of you who helped I've got a patch here which initializes
USB devices earlier in the booting process (e.g. as soon as the hub they are
on is done with hub_configure).  It works great for me, loading / over NFS
with a Linksys NIC, and may also help anybody booting off a USB hard
disk/zip drive/etc.

BTW!  This patch is against -pre5.  It should be fairly obvious, though.

If there's a "Better" way to do this, please let me know.  Till then, it
works for me!

Thanks,

Ben

--- hub.c       Tue Apr 11 11:57:43 2000
+++ hub.c.new   Thu Apr 27 12:08:32 2000
@@ -112,6 +112,8 @@
        for (i = 0; i < hub->nports; i++)
                usb_set_port_feature(hub->dev, i + 1, USB_PORT_FEAT_POWER);
 }
+ 
+static void usb_hub_port_connect_change(struct usb_device *hub, int port) ;
 
 static int usb_hub_configure(struct usb_hub *hub)
 {
@@ -193,6 +195,17 @@
                (le16_to_cpu(hubsts->wHubStatus) & HUB_STATUS_OVERCURRENT) ?
"" : "no ");
 
        usb_hub_power_on(hub);
+
+       /*4/27/2000, Ben Von Handorf, [EMAIL PROTECTED]        */
+       /*Do a connect_change on each port to try and detect devices    */
+       /*as soon as possible.  Required for things like booting        */
+       /*over NFS using a USB NIC and possibly booting of a USB disk   */
+       for( i = 0 ; i <hub->nports ; i++ )
+               {
+               dbg("Trying detection on port %d", i ) ;
+
+               usb_hub_port_connect_change( hub->dev, i ) ;
+               }
 
        return 0;
 }



--
Ben Von Handorf
[EMAIL PROTECTED] 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to