Author: rgampa
Date: Thu Jul 27 07:21:14 2017
New Revision: 75416

URL: http://svn.reactos.org/svn/reactos?rev=75416&view=rev
Log:
[USBXHCI]
-roothub get port status function update
CORE-13344

Modified:
    branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/hardware.h
    branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/roothub.c
    branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/usbxhci.c

Modified: branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/hardware.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/hardware.h?rev=75416&r1=75415&r2=75416&view=diff
==============================================================================
--- branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/hardware.h   
[iso-8859-1] (original)
+++ branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/hardware.h   
[iso-8859-1] Thu Jul 27 07:21:14 2017
@@ -199,30 +199,30 @@
 
 typedef volatile union _XHCI_PORT_STATUS_CONTROL {
   struct {
-    ULONG CCS                : 1;
-    ULONG PED                : 1;
-    ULONG RsvdZ1             : 1;
-    ULONG OCA                : 1;
-    ULONG PR                 : 1;
-    ULONG PLS                : 4;
-    ULONG PP                 : 1;
-    ULONG PortSpeed          : 4;
-    ULONG PIC                : 2;
-    ULONG LWS                : 1;
-    ULONG CSC                : 1;
-    ULONG PEC                : 1;
-    ULONG WRC                : 1;
-    ULONG OCC                : 1;
-    ULONG PRC                : 1;
-    ULONG PLC                : 1;
-    ULONG CEC                : 1;
-    ULONG CAS                : 1;
-    ULONG WCE                : 1;
-    ULONG WDE                : 1;
-    ULONG WOE                : 1;
-    ULONG RsvdZ2             : 2;
-    ULONG DR                 : 1;
-    ULONG WPR                : 1;
+    ULONG CurrentConnectStatus                  : 1;
+    ULONG PortEnableDisable                     : 1;
+    ULONG RsvdZ1                                : 1;
+    ULONG OverCurrentActive                     : 1;
+    ULONG PortReset                             : 1;
+    ULONG PortLinkState                         : 4;
+    ULONG PortPower                             : 1;
+    ULONG PortSpeed                             : 4;
+    ULONG PortIndicatorControl                  : 2;
+    ULONG LinkWriteStrobe                       : 1;
+    ULONG ConnectStatusChange                   : 1;
+    ULONG PortEnableDisableChange               : 1;
+    ULONG WarmResetChange                       : 1;
+    ULONG OverCurrentChange                     : 1;
+    ULONG PortResetChange                       : 1;
+    ULONG PortLinkStateChange                   : 1;
+    ULONG ConfigErrorChange                     : 1;
+    ULONG ColdAttachStatus                      : 1;
+    ULONG WakeONConnectEnable                   : 1;
+    ULONG WakeONDisconnectEnable                : 1;
+    ULONG WakeONOverCurrentEnable               : 1;
+    ULONG RsvdZ2                                : 2;
+    ULONG DeviceRemovable                       : 1;
+    ULONG WarmPortReset                         : 1;
   };
   ULONG AsULONG;
 } XHCI_PORT_STATUS_CONTROL;

Modified: branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/roothub.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/roothub.c?rev=75416&r1=75415&r2=75416&view=diff
==============================================================================
--- branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/roothub.c    
[iso-8859-1] (original)
+++ branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/roothub.c    
[iso-8859-1] Thu Jul 27 07:21:14 2017
@@ -54,14 +54,92 @@
 {
     DPRINT1("XHCI_RH_GetPortStatus: function initiated\n");
     PXHCI_EXTENSION XhciExtension;
-    PULONG PortStatusReg;
+    PULONG PortStatusRegPointer;
     XHCI_PORT_STATUS_CONTROL PortStatusRegister;
-    //USB_30_PORT_STATUS x;
+    USBHUB_PORT_STATUS portstatus;
+    
     XhciExtension = (PXHCI_EXTENSION)xhciExtension;
-    PortStatusReg = (XhciExtension->OperationalRegs) + (XHCI_PORTSC + (Port - 
1)*4);  
-    PortStatusRegister.AsULONG = READ_REGISTER_ULONG(PortStatusReg) ;
-    PortStatusRegister.AsULONG = 0;
-    *PortStatus = PortStatusRegister.AsULONG;
+    PortStatusRegPointer = (XhciExtension->OperationalRegs) + (XHCI_PORTSC + 
(Port - 1)*4);  
+    PortStatusRegister.AsULONG = READ_REGISTER_ULONG(PortStatusRegPointer) ;
+    
+    /*
+    ULONG ConnectStatus          : 1; // Current Connect Status
+    ULONG EnableStatus           : 1; // Port Enabled/Disabled
+    ULONG SuspendStatus          : 1;
+    ULONG OverCurrent            : 1;
+    ULONG ResetStatus            : 1;
+    ULONG Reserved1              : 3;
+    ULONG PowerStatus            : 1;
+    ULONG LsDeviceAttached       : 1; // Low-Speed Device Attached
+    ULONG HsDeviceAttached       : 1; // High-speed Device Attached
+    ULONG TestMode               : 1; // Port Test Mode
+    ULONG IndicatorControl       : 1; // Port Indicator Control
+    ULONG Reserved2              : 3;
+    ULONG ConnectStatusChange    : 1;
+    ULONG EnableStatusChange     : 1;
+    ULONG SuspendStatusChange    : 1;
+    ULONG OverCurrentChange      : 1;
+    ULONG ResetStatusChange      : 1;
+    ULONG Reserved3              : 3;
+    ULONG PowerStatusChange      : 1;
+    ULONG LsDeviceAttachedChange : 1;
+    ULONG HsDeviceAttachedChange : 1;
+    ULONG TestModeChange         : 1;
+    ULONG IndicatorControlChange : 1;
+    ULONG Reserved4              : 3;
+    */
+    /*
+    ULONG CurrentConnectStatus                  : 1;
+    ULONG PortEnableDisable                     : 1;
+    ULONG RsvdZ1                                : 1;
+    ULONG OverCurrentActive                     : 1;
+    ULONG PortReset                             : 1;
+    ULONG PortLinkState                         : 4;
+    ULONG PortPower                             : 1;
+    ULONG PortSpeed                             : 4;
+    ULONG PortIndicatorControl                  : 2;
+    ULONG LinkWriteStrobe                       : 1;
+    ULONG ConnectStatusChange                   : 1;
+    ULONG PortEnableDisableChange               : 1;
+    ULONG WarmResetChange                       : 1;
+    ULONG OverCurrentChange                     : 1;
+    ULONG PortResetChange                       : 1;
+    ULONG PortLinkStateChange                   : 1;
+    ULONG ConfigErrorChange                     : 1;
+    ULONG ColdAttachStatus                      : 1;
+    ULONG WakeONConnectEnable                   : 1;
+    ULONG WakeONDisconnectEnable                : 1;
+    ULONG WakeONOverCurrentEnable               : 1;
+    ULONG RsvdZ2                                : 2;
+    ULONG DeviceRemovable                       : 1;
+    ULONG WarmPortReset                         : 1;
+    */
+    portstatus.AsULONG = 0;
+    portstatus.UsbPortStatus.ConnectStatus = 
PortStatusRegister.CurrentConnectStatus;
+    portstatus.UsbPortStatus.EnableStatus = 
PortStatusRegister.PortEnableDisable;
+    portstatus.UsbPortStatus.SuspendStatus = 
0;//PortStatusRegister.PortEnableDisable;
+    portstatus.UsbPortStatus.OverCurrent = 
PortStatusRegister.OverCurrentActive;
+    portstatus.UsbPortStatus.ResetStatus = PortStatusRegister.PortReset;
+    portstatus.UsbPortStatus.PowerStatus = PortStatusRegister.PortPower;
+    portstatus.UsbPortStatus.LsDeviceAttached = 
0;//PortStatusRegister.PortEnableDisable;
+   // if (PortStatusRegister.PortSpeed) {
+        portstatus.UsbPortStatus.HsDeviceAttached =  
PortStatusRegister.CurrentConnectStatus;
+   // }
+    portstatus.UsbPortStatus.TestMode = 0;//PortStatusRegister.PortPower;
+    portstatus.UsbPortStatus.IndicatorControl = 
0;//PortStatusRegister.PortIndicatorControl;
+    
+    portstatus.UsbPortStatusChange.ConnectStatusChange = 
PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.EnableStatusChange = 
PortStatusRegister.PortEnableDisableChange;
+    portstatus.UsbPortStatusChange.SuspendStatusChange = 
0;//PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.OverCurrentChange = 
PortStatusRegister.OverCurrentChange;
+    portstatus.UsbPortStatusChange.ResetStatusChange = 
PortStatusRegister.PortResetChange;
+    portstatus.UsbPortStatusChange.PowerStatusChange = 
0;//PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.LsDeviceAttachedChange = 
0;//PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.HsDeviceAttachedChange = 
PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.TestModeChange = 
0;//PortStatusRegister.ConnectStatusChange;
+    portstatus.UsbPortStatusChange.IndicatorControlChange =0;// 
PortStatusRegister.ConnectStatusChange;
+   
+    *PortStatus = portstatus.AsULONG;
     
     return MP_STATUS_SUCCESS;
 }
@@ -225,7 +303,7 @@
    usbCommand.InterrupterEnable = 0;
    
    WRITE_REGISTER_ULONG(OperationalRegs + XHCI_USBCMD,usbCommand.AsULONG );
-   DPRINT1("XHCI_RH_DisableIrq: Disable Interupts succesfull\n");
+  //DPRINT1("XHCI_RH_DisableIrq: Disable Interupts succesfull\n");
 }
 
 VOID
@@ -244,6 +322,6 @@
    usbCommand.InterrupterEnable = 1;
    
    WRITE_REGISTER_ULONG(OperationalRegs + XHCI_USBCMD,usbCommand.AsULONG );
-   DPRINT1("XHCI_RH_EnableIrq: Enable Interupts\n");
-   
-}
+   //DPRINT1("XHCI_RH_EnableIrq: Enable Interupts\n");
+   
+}

Modified: branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/usbxhci.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/usbxhci.c?rev=75416&r1=75415&r2=75416&view=diff
==============================================================================
--- branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/usbxhci.c    
[iso-8859-1] (original)
+++ branches/GSoC_2017/usbxhci/reactos/drivers/usb/usbxhci/usbxhci.c    
[iso-8859-1] Thu Jul 27 07:21:14 2017
@@ -148,7 +148,7 @@
     DPRINT("XHCI_ControllerWorkTest: pointer erstba     - %p %p\n", 
XhciExtension->RunTimeRegisterBase + XHCI_ERSTBA+1 , 
XhciExtension->RunTimeRegisterBase + XHCI_ERSTBA);
     
     
-    DbgBreakPoint();
+    //DbgBreakPoint();
     return MP_STATUS_SUCCESS;
 }
 MPSTATUS


Reply via email to