Disabling ehci-omap driver

I’ve been struggling with some really nasty usb behavior on the BB xm for the past 6 months. I’ve posted my problem on here before, but in summary it manifests itself as the ehci driver randomly crashing and bringing down all usb devices with it. I’ve tried several proposed fixes, but none have solved the problem. This brings me to my first question:

  1. Can I just remove the ehci-omap driver?

I don’t need USB 2.0 performance in my application, so I don’t really need what that driver provides. Keeping the driver is not an option given how unreliably it has performed for me.

To that end, I attempted to disable ehci support in a 3.2.21 kernel image i compiled myself using the corresponding patch and defconfig file provided by Robert. The changes I made in the defconfig were to remove the following directives:

CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_HCD_OMAP=y

But upon compiling, installing, and running the kernel, I ran sudo dmesg | grep ehci, which produces lines such as:
[ 1.571502] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 3.591186] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[ 3.597595] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[ 3.605499] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[ 3.622497] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00

So I’m confused:

  1. Why the heck is ehci-omap still there if I removed that option from the kernel configuration?

Any help is appreciated,

Tony

Removing is not the same as disabled, run 'make oldconfig' on the kernel and inspect the resulting .config to see the options used to do the actual build.

Removing is not the same as disabled, run 'make oldconfig' on the kernel and inspect the resulting .config to see the options used to do the actual build.

Koen, I ran 'make oldconfig CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm'
on my build system. Doing a 'diff .config .oldconfig' (where I saved
the .config file I generated when previously compiling the kernel to
.oldconfig) confirmed that the config files matched. Not sure how to
move forward. I'm still confused how ehci is still being compiled
into the kernel.

This should do it..

diff --git a/patches/defconfig b/patches/defconfig
index 91fad23..49be86a 100644
--- a/patches/defconfig
+++ b/patches/defconfig
@@ -1,6 +1,6 @@

Thank you Robert. Since my last post, I actually used your
build_kernel.sh script to build a 3.2.21 kernel without ehci support
(by disabling EHCI in the menuconfig step). But now no usb devices
work on the hub. So, going back to my first question: will the usb
hub work at all without the ehci driver built into the kernel?

if you disable the ehci-omap driver, no usb devices will work on the
hub connected to the ehci port of the dm3730.. (weither it's built-in
or as an external module to the kernel doesn't really matter.)...

On the other hand, the musb otg port is still active, (it's controlled
by another config) so with the right cable and a powered usb hub, you
could use that. :wink:

Regards,

On the other hand, the musb otg port is still active, (it’s controlled
by another config) so with the right cable and a powered usb hub, you
could use that. :wink:

Thanks for the tip, Robert. Good catch. I’m going to go that route and report results.

Dec 31 18:10:23 omap kernel: [ 623.008453] musb_bus_suspend 2294: trying to suspend as a_wait_bcon while active

Robert, one more question: does disabling the ehci driver also disable the ethernet port? It doesn’t appear to be working now.

Correct, the whole smsc 4 port hub/ethernet is connected to the ehci
port on the dm3730..

Regards,