diff options
-rw-r--r-- | drivers/usb/host/ehci-pci.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index 3ba01664f821..72ccd56e36dd 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c | |||
@@ -152,6 +152,20 @@ static int ehci_pci_setup(struct usb_hcd *hcd) | |||
152 | break; | 152 | break; |
153 | } | 153 | } |
154 | break; | 154 | break; |
155 | case PCI_VENDOR_ID_VIA: | ||
156 | if (pdev->device == 0x3104 && (pdev->revision & 0xf0) == 0x60) { | ||
157 | u8 tmp; | ||
158 | |||
159 | /* The VT6212 defaults to a 1 usec EHCI sleep time which | ||
160 | * hogs the PCI bus *badly*. Setting bit 5 of 0x4B makes | ||
161 | * that sleep time use the conventional 10 usec. | ||
162 | */ | ||
163 | pci_read_config_byte(pdev, 0x4b, &tmp); | ||
164 | if (tmp & 0x20) | ||
165 | break; | ||
166 | pci_write_config_byte(pdev, 0x4b, tmp | 0x20); | ||
167 | } | ||
168 | break; | ||
155 | } | 169 | } |
156 | 170 | ||
157 | ehci_reset(ehci); | 171 | ehci_reset(ehci); |