diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/host/pci-quirks.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index e9e5bc178cef..118288d94423 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c | |||
@@ -191,8 +191,9 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev) | |||
191 | } | 191 | } |
192 | if (wait_time <= 0) | 192 | if (wait_time <= 0) |
193 | printk(KERN_WARNING "%s %s: BIOS handoff " | 193 | printk(KERN_WARNING "%s %s: BIOS handoff " |
194 | "failed (BIOS bug ?)\n", | 194 | "failed (BIOS bug ?) %08x\n", |
195 | pdev->dev.bus_id, "OHCI"); | 195 | pdev->dev.bus_id, "OHCI", |
196 | readl(base + OHCI_CONTROL)); | ||
196 | 197 | ||
197 | /* reset controller, preserving RWC */ | 198 | /* reset controller, preserving RWC */ |
198 | writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL); | 199 | writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL); |
@@ -243,6 +244,12 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev) | |||
243 | pr_debug("%s %s: BIOS handoff\n", | 244 | pr_debug("%s %s: BIOS handoff\n", |
244 | pdev->dev.bus_id, "EHCI"); | 245 | pdev->dev.bus_id, "EHCI"); |
245 | 246 | ||
247 | #if 0 | ||
248 | /* aleksey_gorelov@phoenix.com reports that some systems need SMI forced on, | ||
249 | * but that seems dubious in general (the BIOS left it off intentionally) | ||
250 | * and is known to prevent some systems from booting. so we won't do this | ||
251 | * unless maybe we can determine when we're on a system that needs SMI forced. | ||
252 | */ | ||
246 | /* BIOS workaround (?): be sure the | 253 | /* BIOS workaround (?): be sure the |
247 | * pre-Linux code receives the SMI | 254 | * pre-Linux code receives the SMI |
248 | */ | 255 | */ |
@@ -252,6 +259,7 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev) | |||
252 | pci_write_config_dword(pdev, | 259 | pci_write_config_dword(pdev, |
253 | offset + EHCI_USBLEGCTLSTS, | 260 | offset + EHCI_USBLEGCTLSTS, |
254 | val | EHCI_USBLEGCTLSTS_SOOE); | 261 | val | EHCI_USBLEGCTLSTS_SOOE); |
262 | #endif | ||
255 | } | 263 | } |
256 | 264 | ||
257 | /* always say Linux will own the hardware | 265 | /* always say Linux will own the hardware |
@@ -274,8 +282,8 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev) | |||
274 | * it down, and hope nothing goes too wrong | 282 | * it down, and hope nothing goes too wrong |
275 | */ | 283 | */ |
276 | printk(KERN_WARNING "%s %s: BIOS handoff " | 284 | printk(KERN_WARNING "%s %s: BIOS handoff " |
277 | "failed (BIOS bug ?)\n", | 285 | "failed (BIOS bug ?) %08x\n", |
278 | pdev->dev.bus_id, "EHCI"); | 286 | pdev->dev.bus_id, "EHCI", cap); |
279 | pci_write_config_byte(pdev, offset + 2, 0); | 287 | pci_write_config_byte(pdev, offset + 2, 0); |
280 | } | 288 | } |
281 | 289 | ||