Bug 3301

Summary: "USB HC TakeOver failed!" on JVC MP-XP72[35]0 laptops
Product: Drivers Reporter: Jean-Philippe Gu (jean-philippe.guerard)
Component: USBAssignee: David Brownell (dbrownell)
Status: CLOSED CODE_FIX    
Severity: normal    
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.7-2.6.8 Subsystem:
Regression: --- Bisected commit-id:
Attachments: patch adding no_handshake module parameter

Description Jean-Philippe Gu 2004-08-29 06:59:59 UTC
Distribution: Debian Testing
Hardware Environment: JVC MP-XP7230FR
Software Environment: kernel
Problem Description:

During the boot, I see the following messages:
Jul 28 07:33:37 yakkuru kernel: ehci_hcd 0000:00:0f.2: NEC Corporation USB 2.0
Jul 28 07:33:37 yakkuru kernel: ehci_hcd 0000:00:0f.2: irq 5, pci mem d087c000
Jul 28 07:33:37 yakkuru kernel: ehci_hcd 0000:00:0f.2: new USB bus registered,
assigned bus number 1
Jul 28 07:33:37 yakkuru kernel: ehci_hcd 0000:00:0f.2: USB 2.0 enabled, EHCI
1.00, driver 2004-May-10
Jul 28 07:33:37 yakkuru kernel: hub 1-0:1.0: USB hub found
Jul 28 07:33:37 yakkuru kernel: hub 1-0:1.0: 3 ports detected
Jul 28 07:33:37 yakkuru kernel: ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host
Controller (OHCI) Driver (PCI)
Jul 28 07:33:37 yakkuru kernel: ohci_hcd: block sizes: ed 64 td 64
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.0: NEC Corporation USB
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.0: USB HC TakeOver failed!
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.0: can't reset
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.0: init 0000:00:0f.0 fail, -1
Jul 28 07:33:37 yakkuru kernel: ohci_hcd: probe of 0000:00:0f.0 failed with error -1
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.1: NEC Corporation USB (#2)
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.1: USB HC TakeOver failed!
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.1: can't reset
Jul 28 07:33:37 yakkuru kernel: ohci_hcd 0000:00:0f.1: init 0000:00:0f.1 fail, -1
Jul 28 07:33:37 yakkuru kernel: ohci_hcd: probe of 0000:00:0f.1 failed with error -1

After that, USB hotplug does not work at all for USB 1.1 devices. (I have not
tested USB 2 devices). Plugging a device seems to go undetected bu the kernel.

I'm still able to mount a USB 1.1 storage device if it is plugged-in at boot time.

Steps to reproduce:

Booting on a JVC MP-XP7230 ou MP-XP7250 laptop :)

I was able to find the following patch on the web that fixes this issue for me:
http://people.freenet.de/umaxx/howto_linux-on-jvc_mp-xp7250de.txt

I'm now using a 2.6.8 kernel with this patch applied, and USB is working nicely.
Comment 1 David Brownell 2004-10-12 15:08:01 UTC
Created attachment 3811 [details]
patch adding no_handshake module parameter

Looks like a BIOS bug ... when BIOS offers to handshake,
it had better be prepared to implement its part!

The attached patch should give you a module parameter
you can use to override that behavior, doing much the
same thing as that less general patch.	 Eventually
the pci quirks code should probably recognize this
board (and similar ones!) then clear that IR bit.
Comment 2 Jean-Philippe Gu 2004-10-17 06:11:28 UTC
This patch (patch adding no_handshake module parameter) worked nicely for me,
but did not apply cleanly to kernel 2.6.8.1. I had to play with it a bit to get
it to apply.
Comment 3 David Brownell 2004-11-10 16:27:49 UTC
closing; the module parameter should address similar issues 
in the future.