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);
//