PROBLEM: Nvidia OHCI chipset MCP78S (Geforce 8200) hangs on > 1Mbit transfers if noapic/acpi=noirq is missing

From: Zbigniew Luszpinski
Date: Mon Jul 06 2009 - 17:41:23 EST


Hello,

with my ohci usb controller problem I came to conclusion that it hangs only
during big transfers when ohci usb controller is unable to keep up with rest
of the system. That is why it only hangs on fast bulk/iso transfers and not
when slow usb keyboard or mouse is used.

After being inspired by this uhci usb bugfix (which is very similar to my
problem but in my case Nvidia does not provide any driver for windows usb.
Just use default windows one):
http://osdir.com/ml/linux.usb.user/2002-12/msg00112.html
So I modified ohci usb driver source code (ohci-q.c, ohci-hub.c) in similar
way by adding mdelay(5); before most of ohci_writel(...) and ohci_readl(...).
After recompilation and reboot I used ohci usb without noapic workaround for
much longer time without hanging. However after this modification usb hangs
immediately after hotpluging other usb device so my ugly hack did not fix all
the issues. :(

I hope I find here someone who wrote or know Linux ohci driver so he/she knows
how to slow down ohci bulk/iso IO operations without breaking hotplug.
It looks Linux ohci driver is more aggressive on ohci IO than windows one so
making Linux less timing demanding would help my MCP78S keep working.

have a nice day,
Zbigniew Luszpinski

--
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/