aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorIvan Voras <ivoras@FreeBSD.org>2008-07-24 23:22:19 +0000
committerIvan Voras <ivoras@FreeBSD.org>2008-07-24 23:22:19 +0000
commitc7317f5bb03705f9b7d5a636a0c1f8c9d3e7a39b (patch)
tree26e0ad7829a2211bd74d3859fcc4b8545aede7c5 /sys/dev
parent7e4e65ffb37514261ef8f14f644f65b6dc1655c3 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/ehci_pci.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/usb/ehci_pci.c b/sys/dev/usb/ehci_pci.c
index dae21866e8cf..37a56c4343ae 100644
--- a/sys/dev/usb/ehci_pci.c
+++ b/sys/dev/usb/ehci_pci.c
@@ -99,6 +99,8 @@ static const char *ehci_device_m5239 = "ALi M5239 USB 2.0 controller";
/* AMD */
#define PCI_EHCI_DEVICEID_8111 0x10227463
static const char *ehci_device_8111 = "AMD 8111 USB 2.0 controller";
+#define PCI_EHCI_DEVICEID_CS5536 0x20951022
+static const char *ehci_device_cs5536 = "AMD CS5536 (Geode) USB 2.0 controller";
/* ATI */
#define PCI_EHCI_DEVICEID_SB200 0x43451002
@@ -221,6 +223,8 @@ ehci_pci_match(device_t self)
return (ehci_device_m5239);
case PCI_EHCI_DEVICEID_8111:
return (ehci_device_8111);
+ case PCI_EHCI_DEVICEID_CS5536:
+ return (ehci_device_cs5536);
case PCI_EHCI_DEVICEID_SB200:
return (ehci_device_sb200);
case PCI_EHCI_DEVICEID_SB400:
@@ -305,8 +309,13 @@ ehci_pci_attach(device_t self)
case PCI_USBREV_PRE_1_0:
case PCI_USBREV_1_0:
case PCI_USBREV_1_1:
- sc->sc_bus.usbrev = USBREV_UNKNOWN;
device_printf(self, "pre-2.0 USB rev\n");
+ if (pci_get_devid(self) == PCI_EHCI_DEVICEID_CS5536) {
+ sc->sc_bus.usbrev = USBREV_2_0;
+ device_printf(self, "Quirk for CS5536 USB 2.0 enabled\n");
+ break;
+ }
+ sc->sc_bus.usbrev = USBREV_UNKNOWN;
return ENXIO;
case PCI_USBREV_2_0:
sc->sc_bus.usbrev = USBREV_2_0;