View Single Post
Old 05-25-10, 05:20 PM   #13
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Geforce 8200 users, I need your help with finding usb hanging issue

Use acpi=noirq or noapic kernel boot parameters. This will fix the bug. However you will be limited to only one cpu. Another workaround is to use external PCI/PCI-E card with usb connectors. This way you are not limited to only one cpu and you do not have to use any kernel boot parameters.

Remember that only ohci usb controller is broken in all MCP7x chipsets (all mainboards with Geforce8xxx/9xxx nForce7xx) which means: avoid plugging in USB 1.1 devices to mainboard. Use external PCI-/PCI-E card with usb connectors. If you have USB 2.0 devices you can use them with mainboard usb connectors. USB 2.0 is fully working.

I discovered the bug which causes hang of usb 1.1 devices is inside mcp7x chipset at ohci usb controller. I found it has problem with level triggered interrupt. Probably after interrupt service routine the ohci usb controller forgets to lower the interrupt line. This way Linux tries to service interrupt when there is none to service - so keeps waiting instead of working so usb hangs.
Possibly one resistor is missing/broken inside or around chipset which is responsible for auto pulling up/down of interrupt line level after the interrupt is serviced by kernel.

I made home made patch for kernel 2.6.33.3 which increases usb stability by about 80% (still not perfect but much better). I sent it to Nvidia Linux driver team on 08/05/2010 20:12 with detailed description. No response. Two months ago I was talking with Nvidia people about this bug. They told me they will set up Geforce 8200 mainboard and usb 1.1 device to reproduce the bug. I was told next day I will receive response from Nvidia about their findings. Since that day more then 2 months passed and no response.

Nvidia left chipset business recently so I doubt they will do something. This bug may be fixable using kernel patch. I still work on my solution hoping will reach 100% stability some day.
zbiggy is offline   Reply With Quote