diff options
| author | Adrian Bunk <bunk@r063144.stusta.swh.mhn.de> | 2006-03-20 12:30:36 -0500 |
|---|---|---|
| committer | Adrian Bunk <bunk@r063144.stusta.swh.mhn.de> | 2006-03-20 12:30:36 -0500 |
| commit | 0f76ee451484d02c7405d92e7bceb39b415abb01 (patch) | |
| tree | 9722f84281f786ba48971dde057f5171a49969e4 /drivers/usb/host | |
| parent | 01d206a7c1167639f6ca6dac22140fbdca017558 (diff) | |
| parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
Merge with git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'drivers/usb/host')
| -rw-r--r-- | drivers/usb/host/pci-quirks.c | 27 | ||||
| -rw-r--r-- | drivers/usb/host/sl811_cs.c | 4 |
2 files changed, 20 insertions, 11 deletions
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index e9e5bc178cef..9e81c26313f9 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,12 +259,14 @@ 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); |
| 255 | } | 262 | #endif |
| 256 | 263 | ||
| 257 | /* always say Linux will own the hardware | 264 | /* some systems get upset if this semaphore is |
| 258 | * by setting EHCI_USBLEGSUP_OS. | 265 | * set for any other reason than forcing a BIOS |
| 259 | */ | 266 | * handoff.. |
| 260 | pci_write_config_byte(pdev, offset + 3, 1); | 267 | */ |
| 268 | pci_write_config_byte(pdev, offset + 3, 1); | ||
| 269 | } | ||
| 261 | 270 | ||
| 262 | /* if boot firmware now owns EHCI, spin till | 271 | /* if boot firmware now owns EHCI, spin till |
| 263 | * it hands it over. | 272 | * it hands it over. |
| @@ -274,8 +283,8 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev) | |||
| 274 | * it down, and hope nothing goes too wrong | 283 | * it down, and hope nothing goes too wrong |
| 275 | */ | 284 | */ |
| 276 | printk(KERN_WARNING "%s %s: BIOS handoff " | 285 | printk(KERN_WARNING "%s %s: BIOS handoff " |
| 277 | "failed (BIOS bug ?)\n", | 286 | "failed (BIOS bug ?) %08x\n", |
| 278 | pdev->dev.bus_id, "EHCI"); | 287 | pdev->dev.bus_id, "EHCI", cap); |
| 279 | pci_write_config_byte(pdev, offset + 2, 0); | 288 | pci_write_config_byte(pdev, offset + 2, 0); |
| 280 | } | 289 | } |
| 281 | 290 | ||
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c index 466384d7c79f..134d2000128a 100644 --- a/drivers/usb/host/sl811_cs.c +++ b/drivers/usb/host/sl811_cs.c | |||
| @@ -101,7 +101,7 @@ static struct resource resources[] = { | |||
| 101 | }, | 101 | }, |
| 102 | }; | 102 | }; |
| 103 | 103 | ||
| 104 | extern struct device_driver sl811h_driver; | 104 | extern struct platform_driver sl811h_driver; |
| 105 | 105 | ||
| 106 | static struct platform_device platform_dev = { | 106 | static struct platform_device platform_dev = { |
| 107 | .id = -1, | 107 | .id = -1, |
| @@ -132,7 +132,7 @@ static int sl811_hc_init(struct device *parent, ioaddr_t base_addr, int irq) | |||
| 132 | * initialized already because of the link order dependency created | 132 | * initialized already because of the link order dependency created |
| 133 | * by referencing "sl811h_driver". | 133 | * by referencing "sl811h_driver". |
| 134 | */ | 134 | */ |
| 135 | platform_dev.name = sl811h_driver.name; | 135 | platform_dev.name = sl811h_driver.driver.name; |
| 136 | return platform_device_register(&platform_dev); | 136 | return platform_device_register(&platform_dev); |
| 137 | } | 137 | } |
| 138 | 138 | ||
