.. | .. |
---|
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, |
---|