| .. | .. |
|---|
| 21 | 21 | /* defined here to avoid adding to pci_ids.h for single instance use */ |
|---|
| 22 | 22 | #define PCI_DEVICE_ID_INTEL_CE4100_USB 0x2e70 |
|---|
| 23 | 23 | |
|---|
| 24 | +#define PCI_VENDOR_ID_ASPEED 0x1a03 |
|---|
| 25 | +#define PCI_DEVICE_ID_ASPEED_EHCI 0x2603 |
|---|
| 26 | + |
|---|
| 24 | 27 | /*-------------------------------------------------------------------------*/ |
|---|
| 25 | 28 | #define PCI_DEVICE_ID_INTEL_QUARK_X1000_SOC 0x0939 |
|---|
| 26 | 29 | static inline bool is_intel_quark_x1000(struct pci_dev *pdev) |
|---|
| .. | .. |
|---|
| 124 | 127 | case 0x005b: /* CK804 */ |
|---|
| 125 | 128 | case 0x00d8: /* CK8 */ |
|---|
| 126 | 129 | case 0x00e8: /* CK8S */ |
|---|
| 127 | | - if (pci_set_consistent_dma_mask(pdev, |
|---|
| 128 | | - DMA_BIT_MASK(31)) < 0) |
|---|
| 130 | + if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(31)) < 0) |
|---|
| 129 | 131 | ehci_warn(ehci, "can't enable NVidia " |
|---|
| 130 | 132 | "workaround for >2GB RAM\n"); |
|---|
| 131 | 133 | break; |
|---|
| .. | .. |
|---|
| 149 | 151 | break; |
|---|
| 150 | 152 | case PCI_VENDOR_ID_AMD: |
|---|
| 151 | 153 | /* AMD PLL quirk */ |
|---|
| 152 | | - if (usb_amd_find_chipset_info()) |
|---|
| 154 | + if (usb_amd_quirk_pll_check()) |
|---|
| 153 | 155 | ehci->amd_pll_fix = 1; |
|---|
| 154 | 156 | /* AMD8111 EHCI doesn't work, according to AMD errata */ |
|---|
| 155 | 157 | if (pdev->device == 0x7463) { |
|---|
| .. | .. |
|---|
| 186 | 188 | break; |
|---|
| 187 | 189 | case PCI_VENDOR_ID_ATI: |
|---|
| 188 | 190 | /* AMD PLL quirk */ |
|---|
| 189 | | - if (usb_amd_find_chipset_info()) |
|---|
| 191 | + if (usb_amd_quirk_pll_check()) |
|---|
| 190 | 192 | ehci->amd_pll_fix = 1; |
|---|
| 191 | 193 | |
|---|
| 192 | 194 | /* |
|---|
| .. | .. |
|---|
| 221 | 223 | if (pdev->device == 0xa239) { |
|---|
| 222 | 224 | ehci_info(ehci, "applying Synopsys HC workaround\n"); |
|---|
| 223 | 225 | ehci->has_synopsys_hc_bug = 1; |
|---|
| 226 | + } |
|---|
| 227 | + break; |
|---|
| 228 | + case PCI_VENDOR_ID_ASPEED: |
|---|
| 229 | + if (pdev->device == PCI_DEVICE_ID_ASPEED_EHCI) { |
|---|
| 230 | + ehci_info(ehci, "applying Aspeed HC workaround\n"); |
|---|
| 231 | + ehci->is_aspeed = 1; |
|---|
| 224 | 232 | } |
|---|
| 225 | 233 | break; |
|---|
| 226 | 234 | } |
|---|
| .. | .. |
|---|
| 370 | 378 | { |
|---|
| 371 | 379 | if (is_bypassed_id(pdev)) |
|---|
| 372 | 380 | return -ENODEV; |
|---|
| 373 | | - return usb_hcd_pci_probe(pdev, id); |
|---|
| 381 | + return usb_hcd_pci_probe(pdev, id, &ehci_pci_hc_driver); |
|---|
| 374 | 382 | } |
|---|
| 375 | 383 | |
|---|
| 376 | 384 | static void ehci_pci_remove(struct pci_dev *pdev) |
|---|
| 377 | 385 | { |
|---|
| 378 | 386 | pci_clear_mwi(pdev); |
|---|
| 379 | | - usb_hcd_pci_remove(pdev); |
|---|
| 387 | + usb_hcd_pci_remove(pdev); |
|---|
| 380 | 388 | } |
|---|
| 381 | 389 | |
|---|
| 382 | 390 | /* PCI driver selection metadata; PCI hotplugging uses this */ |
|---|
| 383 | 391 | static const struct pci_device_id pci_ids [] = { { |
|---|
| 384 | 392 | /* handle any USB 2.0 EHCI controller */ |
|---|
| 385 | 393 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), |
|---|
| 386 | | - .driver_data = (unsigned long) &ehci_pci_hc_driver, |
|---|
| 387 | 394 | }, { |
|---|
| 388 | 395 | PCI_VDEVICE(STMICRO, PCI_DEVICE_ID_STMICRO_USB_HOST), |
|---|
| 389 | | - .driver_data = (unsigned long) &ehci_pci_hc_driver, |
|---|
| 390 | 396 | }, |
|---|
| 391 | 397 | { /* end: all zeroes */ } |
|---|
| 392 | 398 | }; |
|---|
| .. | .. |
|---|
| 394 | 400 | |
|---|
| 395 | 401 | /* pci driver glue; this is a "new style" PCI driver module */ |
|---|
| 396 | 402 | static struct pci_driver ehci_pci_driver = { |
|---|
| 397 | | - .name = (char *) hcd_name, |
|---|
| 403 | + .name = hcd_name, |
|---|
| 398 | 404 | .id_table = pci_ids, |
|---|
| 399 | 405 | |
|---|
| 400 | 406 | .probe = ehci_pci_probe, |
|---|