Page MenuHomeFreeBSD

D53904.diff
No OneTemporary

D53904.diff

diff --git a/sys/dev/usb/controller/xhci_pci.h b/sys/dev/usb/controller/xhci_pci.h
new file mode 100644
--- /dev/null
+++ b/sys/dev/usb/controller/xhci_pci.h
@@ -0,0 +1,167 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2010-2022 Hans Petter Selasky
+ *
+ */
+
+#include <sys/param.h>
+#include <sys/cdefs.h>
+#include <sys/stdint.h>
+#include <sys/stddef.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+
+#define PCI_XHCI_VENDORID_AMD 0x1022
+#define PCI_XHCI_VENDORID_INTEL 0x8086
+#define PCI_XHCI_VENDORID_VMWARE 0x15ad
+#define PCI_XHCI_VENDORID_ZHAOXIN 0x1d17
+
+static inline const char *
+xhci_pci_match(device_t self)
+{
+ uint32_t device_id = pci_get_devid(self);
+
+ switch (device_id) {
+ case 0x145c1022:
+ return ("AMD KERNCZ USB 3.0 controller");
+ case 0x148c1022:
+ return ("AMD Starship USB 3.0 controller");
+ case 0x149c1022:
+ return ("AMD Matisse USB 3.0 controller");
+ case 0x15e01022:
+ case 0x15e11022:
+ return ("AMD Raven USB 3.1 controller");
+ case 0x43ba1022:
+ return ("AMD X399 USB 3.0 controller");
+ case 0x43b91022: /* X370 */
+ case 0x43bb1022: /* B350 */
+ return ("AMD 300 Series USB 3.1 controller");
+ case 0x43d51022:
+ return ("AMD 400 Series USB 3.1 controller");
+ case 0x78121022:
+ case 0x78141022:
+ case 0x79141022:
+ return ("AMD FCH USB 3.0 controller");
+
+ case 0x077815ad:
+ case 0x077915ad:
+ return ("VMware USB 3.0 controller");
+
+ case 0x145f1d94:
+ return ("Hygon USB 3.0 controller");
+
+ case 0x01941033:
+ return ("NEC uPD720200 USB 3.0 controller");
+ case 0x00151912:
+ return ("NEC uPD720202 USB 3.0 controller");
+
+ case 0x10001b73:
+ return ("Fresco Logic FL1000G USB 3.0 controller");
+ case 0x10091b73:
+ return ("Fresco Logic FL1009 USB 3.0 controller");
+ case 0x11001b73:
+ return ("Fresco Logic FL1100 USB 3.0 controller");
+
+ case 0x10421b21:
+ return ("ASMedia ASM1042 USB 3.0 controller");
+ case 0x11421b21:
+ return ("ASMedia ASM1042A USB 3.0 controller");
+ case 0x13431b21:
+ return ("ASMedia ASM1143 USB 3.1 controller");
+ case 0x32421b21:
+ return ("ASMedia ASM3242 USB 3.2 controller");
+
+ case 0x02ed8086:
+ return ("Intel Comet Lake PCH-LP USB 3.1 controller");
+ case 0x0b278086:
+ return ("Intel Goshen Ridge Thunderbolt 4 USB controller");
+ case 0x0f358086:
+ return ("Intel BayTrail USB 3.0 controller");
+ case 0x11388086:
+ return ("Intel Maple Ridge Thunderbolt 4 USB controller");
+ case 0x15c18086:
+ case 0x15d48086:
+ case 0x15db8086:
+ return ("Intel Alpine Ridge Thunderbolt 3 USB controller");
+ case 0x15e98086:
+ case 0x15ec8086:
+ case 0x15f08086:
+ return ("Intel Titan Ridge Thunderbolt 3 USB controller");
+ case 0x19d08086:
+ return ("Intel Denverton USB 3.0 controller");
+ case 0x9c318086:
+ case 0x1e318086:
+ return ("Intel Panther Point USB 3.0 controller");
+ case 0x22b58086:
+ return ("Intel Braswell USB 3.0 controller");
+ case 0x31a88086:
+ return ("Intel Gemini Lake USB 3.0 controller");
+ case 0x34ed8086:
+ return ("Intel Ice Lake-LP USB 3.1 controller");
+ case 0x43ed8086:
+ return ("Intel Tiger Lake-H USB 3.2 controller");
+ case 0x461e8086:
+ return ("Intel Alder Lake-P Thunderbolt 4 USB controller");
+ case 0x51ed8086:
+ case 0x54ed8086:
+ case 0x5fed8086:
+ return ("Intel Alder Lake PCH USB 3.2 controller");
+ case 0x5aa88086:
+ return ("Intel Apollo Lake USB 3.0 controller");
+ case 0x7ae08086:
+ return ("Intel Alder Lake USB 3.2 controller");
+ case 0x8a138086:
+ return ("Intel Ice Lake Thunderbolt 3 USB controller");
+ case 0x8c318086:
+ return ("Intel Lynx Point USB 3.0 controller");
+ case 0x8cb18086:
+ return ("Intel Wildcat Point USB 3.0 controller");
+ case 0x8d318086:
+ return ("Intel Wellsburg USB 3.0 controller");
+ case 0x9a138086:
+ return ("Intel Tiger Lake-LP Thunderbolt 4 USB controller");
+ case 0x9a178086:
+ return ("Intel Tiger Lake-H Thunderbolt 4 USB controller");
+ case 0x9cb18086:
+ return ("Broadwell Integrated PCH-LP chipset USB 3.0 controller");
+ case 0x9d2f8086:
+ return ("Intel Sunrise Point-LP USB 3.0 controller");
+ case 0xa0ed8086:
+ return ("Intel Tiger Lake-LP USB 3.2 controller");
+ case 0xa12f8086:
+ return ("Intel Sunrise Point USB 3.0 controller");
+ case 0xa1af8086:
+ return ("Intel Lewisburg USB 3.0 controller");
+ case 0xa2af8086:
+ return ("Intel Union Point USB 3.0 controller");
+ case 0xa36d8086:
+ return ("Intel Cannon Lake USB 3.1 controller");
+ case 0xa71e8086:
+ return ("Intel Raptor Lake-P Thunderbolt 4 USB Controller");
+
+ case 0xa01b177d:
+ return ("Cavium ThunderX USB 3.0 controller");
+
+ case 0x1ada10de:
+ return ("NVIDIA TU106 USB 3.1 controller");
+
+ case 0x92021d17:
+ return ("Zhaoxin ZX-100 USB 3.0 controller");
+ case 0x92031d17:
+ return ("Zhaoxin ZX-200 USB 3.0 controller");
+ case 0x92041d17:
+ return ("Zhaoxin ZX-E USB 3.0 controller");
+
+ default:
+ break;
+ }
+
+ if ((pci_get_class(self) == PCIC_SERIALBUS)
+ && (pci_get_subclass(self) == PCIS_SERIALBUS_USB)
+ && (pci_get_progif(self) == PCIP_SERIALBUS_USB_XHCI)) {
+ return ("XHCI (generic) USB 3.0 controller");
+ }
+ return (NULL); /* dunno */
+}
diff --git a/sys/dev/usb/controller/xhci_pci.c b/sys/dev/usb/controller/xhci_pci.c
--- a/sys/dev/usb/controller/xhci_pci.c
+++ b/sys/dev/usb/controller/xhci_pci.c
@@ -56,14 +56,10 @@
#include <dev/usb/usb_bus.h>
#include <dev/usb/usb_pci.h>
#include <dev/usb/controller/xhci.h>
+#include <dev/usb/controller/xhci_pci.h>
#include <dev/usb/controller/xhcireg.h>
#include "usb_if.h"
-#define PCI_XHCI_VENDORID_AMD 0x1022
-#define PCI_XHCI_VENDORID_INTEL 0x8086
-#define PCI_XHCI_VENDORID_VMWARE 0x15ad
-#define PCI_XHCI_VENDORID_ZHAOXIN 0x1d17
-
static device_probe_t xhci_pci_probe;
static device_detach_t xhci_pci_detach;
static usb_take_controller_t xhci_pci_take_controller;
@@ -87,157 +83,6 @@
DRIVER_MODULE(xhci, pci, xhci_pci_driver, NULL, NULL);
MODULE_DEPEND(xhci, usb, 1, 1, 1);
-static const char *
-xhci_pci_match(device_t self)
-{
- uint32_t device_id = pci_get_devid(self);
-
- switch (device_id) {
- case 0x145c1022:
- return ("AMD KERNCZ USB 3.0 controller");
- case 0x148c1022:
- return ("AMD Starship USB 3.0 controller");
- case 0x149c1022:
- return ("AMD Matisse USB 3.0 controller");
- case 0x15b61022:
- case 0x15b71022:
- return ("AMD Raphael/Granite Ridge USB 3.1 controller");
- case 0x15b81022:
- return ("AMD Raphael/Granite Ridge USB 2.0 controller");
- case 0x15e01022:
- case 0x15e11022:
- return ("AMD Raven USB 3.1 controller");
- case 0x43ba1022:
- return ("AMD X399 USB 3.0 controller");
- case 0x43b91022: /* X370 */
- case 0x43bb1022: /* B350 */
- return ("AMD 300 Series USB 3.1 controller");
- case 0x43d51022:
- return ("AMD 400 Series USB 3.1 controller");
- case 0x43f71022:
- return ("AMD 600 Series USB 3.2 controller");
- case 0x78121022:
- case 0x78141022:
- case 0x79141022:
- return ("AMD FCH USB 3.0 controller");
-
- case 0x077815ad:
- case 0x077915ad:
- return ("VMware USB 3.0 controller");
-
- case 0x145f1d94:
- return ("Hygon USB 3.0 controller");
-
- case 0x01941033:
- return ("NEC uPD720200 USB 3.0 controller");
- case 0x00151912:
- return ("NEC uPD720202 USB 3.0 controller");
-
- case 0x10001b73:
- return ("Fresco Logic FL1000G USB 3.0 controller");
- case 0x10091b73:
- return ("Fresco Logic FL1009 USB 3.0 controller");
- case 0x11001b73:
- return ("Fresco Logic FL1100 USB 3.0 controller");
-
- case 0x10421b21:
- return ("ASMedia ASM1042 USB 3.0 controller");
- case 0x11421b21:
- return ("ASMedia ASM1042A USB 3.0 controller");
- case 0x13431b21:
- return ("ASMedia ASM1143 USB 3.1 controller");
- case 0x32421b21:
- return ("ASMedia ASM3242 USB 3.2 controller");
-
- case 0x0b278086:
- return ("Intel Goshen Ridge Thunderbolt 4 USB controller");
- case 0x0f358086:
- return ("Intel BayTrail USB 3.0 controller");
- case 0x11388086:
- return ("Intel Maple Ridge Thunderbolt 4 USB controller");
- case 0x15c18086:
- case 0x15d48086:
- case 0x15db8086:
- return ("Intel Alpine Ridge Thunderbolt 3 USB controller");
- case 0x15e98086:
- case 0x15ec8086:
- case 0x15f08086:
- return ("Intel Titan Ridge Thunderbolt 3 USB controller");
- case 0x19d08086:
- return ("Intel Denverton USB 3.0 controller");
- case 0x9c318086:
- case 0x1e318086:
- return ("Intel Panther Point USB 3.0 controller");
- case 0x22b58086:
- return ("Intel Braswell USB 3.0 controller");
- case 0x31a88086:
- return ("Intel Gemini Lake USB 3.0 controller");
- case 0x34ed8086:
- return ("Intel Ice Lake-LP USB 3.1 controller");
- case 0x43ed8086:
- return ("Intel Tiger Lake-H USB 3.2 controller");
- case 0x461e8086:
- return ("Intel Alder Lake-P Thunderbolt 4 USB controller");
- case 0x4b7d8086:
- return ("Intel Elkhart Lake USB 3.1 controller");
- case 0x51ed8086:
- return ("Intel Alder Lake USB 3.2 controller");
- case 0x5aa88086:
- return ("Intel Apollo Lake USB 3.0 controller");
- case 0x7ae08086:
- return ("Intel Alder Lake USB 3.2 controller");
- case 0x8a138086:
- return ("Intel Ice Lake Thunderbolt 3 USB controller");
- case 0x8c318086:
- return ("Intel Lynx Point USB 3.0 controller");
- case 0x8cb18086:
- return ("Intel Wildcat Point USB 3.0 controller");
- case 0x8d318086:
- return ("Intel Wellsburg USB 3.0 controller");
- case 0x9a138086:
- return ("Intel Tiger Lake-LP Thunderbolt 4 USB controller");
- case 0x9a178086:
- return ("Intel Tiger Lake-H Thunderbolt 4 USB controller");
- case 0x9cb18086:
- return ("Broadwell Integrated PCH-LP chipset USB 3.0 controller");
- case 0x9d2f8086:
- return ("Intel Sunrise Point-LP USB 3.0 controller");
- case 0xa0ed8086:
- return ("Intel Tiger Lake-LP USB 3.2 controller");
- case 0xa12f8086:
- return ("Intel Sunrise Point USB 3.0 controller");
- case 0xa1af8086:
- return ("Intel Lewisburg USB 3.0 controller");
- case 0xa2af8086:
- return ("Intel Union Point USB 3.0 controller");
- case 0xa36d8086:
- return ("Intel Cannon Lake USB 3.1 controller");
-
- case 0xa01b177d:
- return ("Cavium ThunderX USB 3.0 controller");
-
- case 0x1ada10de:
- return ("NVIDIA TU106 USB 3.1 controller");
-
- case 0x92021d17:
- return ("Zhaoxin ZX-100 USB 3.0 controller");
- case 0x92031d17:
- return ("Zhaoxin ZX-200 USB 3.0 controller");
- case 0x92041d17:
- return ("Zhaoxin ZX-E USB 3.0 controller");
-
- default:
- break;
- }
-
- if ((pci_get_class(self) == PCIC_SERIALBUS)
- && (pci_get_subclass(self) == PCIS_SERIALBUS_USB)
- && (pci_get_progif(self) == PCIP_SERIALBUS_USB_XHCI)) {
- return ("XHCI (generic) USB 3.0 controller");
- }
- return (NULL); /* dunno */
-}
-
static int
xhci_pci_probe(device_t self)
{

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 30, 4:03 AM (8 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26217733
Default Alt Text
D53904.diff (10 KB)

Event Timeline