Re: Regression in kernel 3.8-rc1 bisected to commit adfa79d: I nowget many "unable to enumerate USB device" messages

From: Alan Stern
Date: Wed Dec 26 2012 - 22:56:40 EST


On Wed, 26 Dec 2012, Larry Finger wrote:

> On 12/26/2012 10:45 AM, Alan Stern wrote:
> >
> > I see. Do you happen to have CONFIG_USB_EHCI_HCD=y and
> > CONFIG_USB_EHCI_PCI=m in your .config? If you do, try changing
> > EHCI_PCI to y.
>
> One additional data point: When the EHCI and HCD parameters are set to y rather
> than m as in the list that follows, the enumerate messages do not occur.
>
> CONFIG_USB_ARCH_HAS_HCD=y
> CONFIG_USB_ARCH_HAS_EHCI=y
> CONFIG_USB_XHCI_HCD=y
> CONFIG_USB_EHCI_HCD=y
> CONFIG_USB_OHCI_HCD=y
> CONFIG_USB_EHCI_PCI=y
> # CONFIG_USB_OHCI_HCD_PLATFORM is not set
> # CONFIG_USB_EHCI_HCD_PLATFORM is not set
> CONFIG_USB_UHCI_HCD=y

This looks like a matter of getting modules to load in the right order.
Apparently your OHCI controller doesn't work right if the EHCI driver
isn't present. Before the troublesome commit, this meant ehci-hcd had
to be loaded before ohci-hcd. Now it means ehci-hcd and ehci-pci both
have to be loaded before ohci-hcd.

In the dmesg log you provided, ehci-hcd was loaded before ohci-hcd but
ehci-pci was loaded after. Of course, when everything is built into
the kernel (not as modules) then questions of loading order don't
arise.

You can test this hypothesis by booting a kernel without that commit
and blacklisting ehci-hcd, so that it doesn't get loaded automatically.
See if the errors start to come, and see if they stop when you load
ehci-hcd manually.

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/