summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorbenno <benno@FreeBSD.org>2008-04-11 05:50:53 +0000
committerbenno <benno@FreeBSD.org>2008-04-11 05:50:53 +0000
commit65e9886a96e340738e55f0fec0827590e3d4715c (patch)
tree2c8309468fcf9f66d08df4b3d8df260c6e3d5f90 /sys/dev/usb
parent88caf3bcc9a7a57216f179df093e02692dbc125e (diff)
downloadFreeBSD-src-65e9886a96e340738e55f0fec0827590e3d4715c.zip
FreeBSD-src-65e9886a96e340738e55f0fec0827590e3d4715c.tar.gz
Identify ICH9 USB controllers.
I've taken a slightly different approach than is used with the ICH8 controllers in that each controller is not identified individually (eg USB A, USB B, etc). Instead I've given then same description to each one even though the device ID differs. This can easily be changed if desired, or ICH8 (and any others using that approach) can be made to work as this does.
Diffstat (limited to 'sys/dev/usb')
-rw-r--r--sys/dev/usb/ehci_pci.c6
-rw-r--r--sys/dev/usb/uhci_pci.c20
2 files changed, 26 insertions, 0 deletions
diff --git a/sys/dev/usb/ehci_pci.c b/sys/dev/usb/ehci_pci.c
index 548488f..dae2186 100644
--- a/sys/dev/usb/ehci_pci.c
+++ b/sys/dev/usb/ehci_pci.c
@@ -121,6 +121,9 @@ static const char *ehci_device_ich7 = "Intel 82801GB/R (ICH7) USB 2.0 controller
static const char *ehci_device_ich8_a = "Intel 82801H (ICH8) USB 2.0 controller USB2-A";
#define PCI_EHCI_DEVICEID_ICH8_B 0x283a8086
static const char *ehci_device_ich8_b = "Intel 82801H (ICH8) USB 2.0 controller USB2-B";
+#define PCI_EHCI_DEVICEID_ICH9_A 0x293a8086
+#define PCI_EHCI_DEVICEID_ICH9_B 0x293c8086
+static const char *ehci_device_ich9 = "Intel 82801I (ICH9) USB 2.0 controller";
#define PCI_EHCI_DEVICEID_63XX 0x268c8086
static const char *ehci_device_63XX = "Intel 63XXESB USB 2.0 controller";
@@ -238,6 +241,9 @@ ehci_pci_match(device_t self)
return (ehci_device_ich8_a);
case PCI_EHCI_DEVICEID_ICH8_B:
return (ehci_device_ich8_b);
+ case PCI_EHCI_DEVICEID_ICH9_A:
+ case PCI_EHCI_DEVICEID_ICH9_B:
+ return (ehci_device_ich9);
case PCI_EHCI_DEVICEID_NEC:
return (ehci_device_nec);
case PCI_EHCI_DEVICEID_NF2:
diff --git a/sys/dev/usb/uhci_pci.c b/sys/dev/usb/uhci_pci.c
index ee6960a..1b9ac48 100644
--- a/sys/dev/usb/uhci_pci.c
+++ b/sys/dev/usb/uhci_pci.c
@@ -166,6 +166,14 @@ static const char *uhci_device_ich8_d = "Intel 82801H (ICH8) USB controller USB-
#define PCI_UHCI_DEVICEID_ICH8_E 0x28358086
static const char *uhci_device_ich8_e = "Intel 82801H (ICH8) USB controller USB-E";
+#define PCI_UHCI_DEVICEID_ICH9_A 0x29348086
+#define PCI_UHCI_DEVICEID_ICH9_B 0x29358086
+#define PCI_UHCI_DEVICEID_ICH9_C 0x29368086
+#define PCI_UHCI_DEVICEID_ICH9_D 0x29378086
+#define PCI_UHCI_DEVICEID_ICH9_E 0x29388086
+#define PCI_UHCI_DEVICEID_ICH9_F 0x29398086
+static const char *uhci_device_ich9 = "Intel 82801I (ICH9) USB controller";
+
#define PCI_UHCI_DEVICEID_440MX 0x719a8086
static const char *uhci_device_440mx = "Intel 82443MX USB controller";
@@ -275,6 +283,18 @@ uhci_pci_match(device_t self)
return (uhci_device_ich8_d);
} else if (device_id == PCI_UHCI_DEVICEID_ICH8_E) {
return (uhci_device_ich8_e);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_A) {
+ return (uhci_device_ich9);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_B) {
+ return (uhci_device_ich9);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_C) {
+ return (uhci_device_ich9);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_D) {
+ return (uhci_device_ich9);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_E) {
+ return (uhci_device_ich9);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH9_F) {
+ return (uhci_device_ich9);
} else if (device_id == PCI_UHCI_DEVICEID_440MX) {
return (uhci_device_440mx);
} else if (device_id == PCI_UHCI_DEVICEID_460GX) {
OpenPOWER on IntegriCloud