Hans Petter Selasky wrote:

 Do you know if the EHCI chip used is compliant to USBREV_2_0 ?

The answer to this apparently keeps getting lost in the mail :) Yes, it is compliant, for all intents and purposes (it works as USB2 on Linux and FreeBSD). Can I bug someone to commit this patch?

--- usb_/ehci_pci.c     2008-01-26 18:42:11.000000000 +0100
+++ usb/ehci_pci.c      2008-01-26 21:15:28.000000000 +0100
@@ -99,6 +99,8 @@
 /* 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
@@ -214,6 +216,8 @@
                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:
@@ -291,8 +295,13 @@
        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;

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to