Hi Alan, On Mon, Mar 25, 2013 at 10:28:04PM +0800, Alan Stern wrote: > On Mon, 25 Mar 2013, Huang Rui wrote: > > > Hi Alan, > > > > Thank you to take a look at this issue. Sorry to disturb you again. > > The PORT ENABLE(PORT_PE) bit in PORTSC register is not set when the > > port reset, in other words, host controller and device might not do > > alternating sequence of Chirp Ks and Chirp Js or not be detected. Am I > > right? > > Yes. Thanks to your confirm. > > > I found why the boot issue is not alway reproduced. Because > > sometimes ehci_hcd is not loaded before ohci_hcd. > > > > [ 25.068090] Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after > > > > If ehci_hcd is loaded firstly, the USB Reader(in my side) is always > > detected as high speed device. Then I do below change and boot issue > > isn't encountered again. > > > > diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c > > index 180a2b0..30fc91c 100644 > > --- a/drivers/usb/host/ohci-hcd.c > > +++ b/drivers/usb/host/ohci-hcd.c > > @@ -1325,7 +1325,7 @@ static int __init ohci_hcd_mod_init(void) > > clear_bit(USB_OHCI_LOADED, &usb_hcds_loaded); > > return retval; > > } > > -module_init(ohci_hcd_mod_init); > > +late_initcall(ohci_hcd_mod_init); > > > > static void __exit ohci_hcd_mod_exit(void) > > { > > > > But I think it's not a good solution. Have you any idea to have an > > appropriate way to make ehci_hcd loaded firstly? > > In general there is no way to do it. Especially with modern kernels, > because what matters is ehci-pci, not ehci-hcd. And also because the > order of probing is not always the same. > > I suppose you could build a kernel with CONFIG_USB_EHCI_HCD=y and > CONFIG_USB_EHCI_PCI=y but CONFIG_USB_OHCI_HCD=m. That might help. Yes, you're right. Thanks again to your suggestion. Best Regards, Rui -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html