Author: cgutman
Date: Sun Feb 12 18:28:52 2012
New Revision: 55568
URL: 
http://svn.reactos.org/svn/reactos?rev=55568&view=rev
Log:
[USB]
- Merge r55564 and r55567 from usb-bringup-trunk
- USB development should now be done in trunk exclusively (UHCI implementation may be an
exception)
Modified:
    trunk/reactos/   (props changed)
    trunk/reactos/drivers/usb/usbehci/   (props changed)
    trunk/reactos/drivers/usb/usbehci/hardware.cpp
    trunk/reactos/drivers/usb/usbehci/hardware.h
Propchange: trunk/reactos/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 12 18:28:52 2012
@@ -11,5 +11,5 @@
 /branches/shell32_new-bringup:51893-53652,53661,53700
 /branches/tcp-rewrite-branch:48720,48840-48841,49424-49426,49454
/branches/usb-bringup:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859
-/branches/usb-bringup-trunk:55019-55543,55548-55554
+/branches/usb-bringup-trunk:55019-55543,55548-55554,55556-55567
 /branches/wlan-bringup:54809-54998
Propchange: trunk/reactos/drivers/usb/usbehci/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 12 18:28:52 2012
@@ -24,6 +24,6 @@
 /branches/tcp-rewrite-branch/drivers/usb/usbehci_new:48720,48840-48841,49424-49426,49454
/branches/usb-bringup/drivers/usb/usbehci:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859
/branches/usb-bringup/drivers/usb/usbehci_new:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859
-/branches/usb-bringup-trunk/drivers/usb/usbehci:55524-55543,55548-55554
+/branches/usb-bringup-trunk/drivers/usb/usbehci:55524-55543,55548-55554,55556-55567
 /branches/wlan-bringup/drivers/usb/usbehci:54809-54998
 /branches/wlan-bringup/drivers/usb/usbehci_new:54809-54998
Modified: trunk/reactos/drivers/usb/usbehci/hardware.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbehci/hardwa…
==============================================================================
--- trunk/reactos/drivers/usb/usbehci/hardware.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/usb/usbehci/hardware.cpp [iso-8859-1] Sun Feb 12 18:28:52 2012
@@ -89,6 +89,7 @@
     // local
     BOOLEAN InterruptService();
+    VOID PrintCapabilities();
     // friend function
     friend BOOLEAN NTAPI InterruptServiceRoutine(IN PKINTERRUPT  Interrupt, IN PVOID
ServiceContext);
@@ -292,6 +293,49 @@
     WRITE_REGISTER_ULONG((PULONG)((ULONG)m_Base + Offset), Value);
 }
+VOID
+CUSBHardwareDevice::PrintCapabilities()
+{
+    if (m_Capabilities.HCSParams.PortPowerControl)
+    {
+        DPRINT1("Controler EHCI has Port Power Control\n");
+    }
+
+    DPRINT1("Controller Port Routing Rules %d\n",
m_Capabilities.HCSParams.PortRouteRules);
+    DPRINT1("Number of Ports per Companion Controller %d\n",
m_Capabilities.HCSParams.PortPerCHC);
+    DPRINT1("Number of Companion Controller %d\n",
m_Capabilities.HCSParams.CHCCount);
+
+    if (m_Capabilities.HCSParams.PortIndicator)
+    {
+        DPRINT1("Controller has Port Indicators Support\n");
+    }
+
+    if (m_Capabilities.HCSParams.DbgPortNum)
+    {
+        DPRINT1("Controller has Debug Port Support At Port %x\n",
m_Capabilities.HCSParams.DbgPortNum);
+    }
+
+    if (m_Capabilities.HCCParams.EECPCapable)
+    {
+        DPRINT1("Controller has Extended Capabilities Support\n");
+    }
+
+    if (m_Capabilities.HCCParams.ParkMode)
+    {
+        DPRINT1("Controller supports Asynchronous Schedule Park\n");
+    }
+
+    if (m_Capabilities.HCCParams.VarFrameList)
+    {
+        DPRINT1("Controller supports Programmable Frame List Size\n");
+    }
+
+    if (m_Capabilities.HCCParams.CurAddrBits)
+    {
+        DPRINT1("Controller uses 64-Bit Addressing\n");
+    }
+}
+
 NTSTATUS
 CUSBHardwareDevice::PnpStart(
     PCM_RESOURCE_LIST RawResources,
@@ -368,11 +412,15 @@
                 m_Capabilities.HCCParamsLong =
READ_REGISTER_ULONG((PULONG)((ULONG)ResourceBase + EHCI_HCCPARAMS));
                 DPRINT1("Controller has %d Length\n", m_Capabilities.Length);
-                DPRINT1("Controller has %d Ports\n",
m_Capabilities.HCSParams.PortCount);
                 DPRINT1("Controller EHCI Version %x\n",
m_Capabilities.HCIVersion);
                 DPRINT1("Controler EHCI Caps HCSParamsLong %x\n",
m_Capabilities.HCSParamsLong);
                 DPRINT1("Controler EHCI Caps HCCParamsLong %x\n",
m_Capabilities.HCCParamsLong);
-                DPRINT1("Controler EHCI Caps PowerControl %x\n",
m_Capabilities.HCSParams.PortPowerControl);
+                DPRINT1("Controller has %d Ports\n",
m_Capabilities.HCSParams.PortCount);
+
+                //
+                // print capabilities
+                //
+                PrintCapabilities();
                 if (m_Capabilities.HCSParams.PortRouteRules)
                 {
Modified: trunk/reactos/drivers/usb/usbehci/hardware.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbehci/hardwa…
==============================================================================
--- trunk/reactos/drivers/usb/usbehci/hardware.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/usb/usbehci/hardware.h [iso-8859-1] Sun Feb 12 18:28:52 2012
@@ -145,14 +145,15 @@
         ULONG DWord;
     } Token;
     ULONG BufferPointer[5];
-
+    ULONG ExtendedBufferPointer[5];
+
     //Software
     ULONG PhysicalAddr;
     LIST_ENTRY DescriptorEntry;
     ULONG TotalBytesToTransfer;
 } QUEUE_TRANSFER_DESCRIPTOR, *PQUEUE_TRANSFER_DESCRIPTOR;
-C_ASSERT(FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr) == 0x20);
+C_ASSERT(FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr) == 0x34);
 //
 // EndPointSpeeds Flags and END_POINT_CHARACTERISTICS
@@ -212,6 +213,7 @@
         ULONG DWord;
     } Token;
     ULONG BufferPointer[5];
+    ULONG ExtendedBufferPointer[5];
     //Software
     ULONG PhysicalAddr;
@@ -231,7 +233,7 @@
 C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, AlternateNextPointer) == 0x14);
 C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, Token) == 0x18);
 C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, BufferPointer) == 0x1C);
-C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr) == 0x30);
+C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr) == 0x44);
 //