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); |
