diff options
author | benno <benno@FreeBSD.org> | 2008-04-11 05:50:53 +0000 |
---|---|---|
committer | benno <benno@FreeBSD.org> | 2008-04-11 05:50:53 +0000 |
commit | 65e9886a96e340738e55f0fec0827590e3d4715c (patch) | |
tree | 2c8309468fcf9f66d08df4b3d8df260c6e3d5f90 /sys/dev/usb | |
parent | 88caf3bcc9a7a57216f179df093e02692dbc125e (diff) | |
download | FreeBSD-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.c | 6 | ||||
-rw-r--r-- | sys/dev/usb/uhci_pci.c | 20 |
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) { |