USB: ehci: stop vt6212 bus hogging
authorRene Herman <rene.herman@gmail.com>
Thu, 20 Mar 2008 07:58:16 +0000 (00:58 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Mar 2008 05:26:15 +0000 (22:26 -0700)
commit055b93c9e32a44acfe3e5e58b900f1e8fcd5f858
treeb069544cd7a804c6a6d3be2b0d59b7356b8060e6
parent7f170a632d67297b4076947f9b42f55f710ccd42
USB: ehci: stop vt6212 bus hogging

The VIA VT6212 defaults to only waiting 1us between passes over EHCI's
async ring, which hammers PCI badly ... and by preventing other devices
from accessing the bus, causes problems like drops in IDE throughput,
a problem that's been bugging users of those chips for several years.

A (partial) datasheet for this chip eventually turned up, letting us
see how to make it use a VIA-specific register to switch over to the
the normal 10us value instead, as suggested by the EHCI specification
Solution noted by Lev A. Melnikovsky.

It's not clear whether this register exists on other VIA chips; we
know that it's ineffective on the vt8235.  So this patch only applies
to chips that seem to be incarnations of the (discrete) vt6212.

Signed-off-by: Rene Herman <rene.herman@gmail.com>
Tested-by: Lev A. Melnikovsky <melnikovsky@mail.ru>
Tested-by: Alessandro Suardi <alessandro.suardi@gmail.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-pci.c