Author: cgutman
Date: Tue Feb  7 02:22:34 2012
New Revision: 55477
URL: 
http://svn.reactos.org/svn/reactos?rev=55477&view=rev
Log:
[USBEHCI]
- Wait for periodic scheduling to start
- Increase the wait interval for asynchronous scheduling to start
Modified:
    branches/usb-bringup-trunk/drivers/usb/usbehci_new/hardware.cpp
Modified: branches/usb-bringup-trunk/drivers/usb/usbehci_new/hardware.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/usb-bringup-trunk/drivers/usb/u…
==============================================================================
--- branches/usb-bringup-trunk/drivers/usb/usbehci_new/hardware.cpp [iso-8859-1]
(original)
+++ branches/usb-bringup-trunk/drivers/usb/usbehci_new/hardware.cpp [iso-8859-1] Tue Feb
7 02:22:34 2012
@@ -714,22 +714,29 @@
     //
     for (FailSafe = 100; FailSafe > 1; FailSafe--)
     {
-        KeStallExecutionProcessor(10);
+        KeStallExecutionProcessor(100);
         UsbSts = EHCI_READ_REGISTER_ULONG(EHCI_USBSTS);
-        if (!(UsbSts & EHCI_STS_HALT))
+        if (!(UsbSts & EHCI_STS_HALT) && (UsbSts & EHCI_STS_PSS))
         {
             break;
         }
     }
-
     if (UsbSts & EHCI_STS_HALT)
     {
         DPRINT1("Could not start execution on the controller\n");
+        ASSERT(FALSE);
         return STATUS_UNSUCCESSFUL;
     }
+    if (!(UsbSts & EHCI_STS_PSS))
+    {
+        DPRINT1("Could not enable periodic scheduling\n");
+        ASSERT(FALSE);
+        return STATUS_UNSUCCESSFUL;
+    }
+
     //
     // Assign the AsyncList Register
     //
@@ -755,7 +762,7 @@
     //
     for (FailSafe = 100; FailSafe > 1; FailSafe--)
     {
-        KeStallExecutionProcessor(10);
+        KeStallExecutionProcessor(100);
         UsbSts = EHCI_READ_REGISTER_ULONG(EHCI_USBSTS);
         if ((UsbSts & EHCI_STS_ASS))
@@ -1282,7 +1289,7 @@
     This = (CUSBHardwareDevice*) SystemArgument1;
     CStatus = (ULONG) SystemArgument2;
-       DPRINT("CStatus %x\n", CStatus);
+    DPRINT("CStatus %x\n", CStatus);
     //
     // check for completion of async schedule