#include "usbehci.h"
#include <debug.h>
#include "dbg_ehci.h"
Go to the source code of this file.
|
| MPSTATUS NTAPI | EHCI_RH_ChirpRootPort (IN PVOID ehciExtension, IN USHORT Port) |
| |
| VOID NTAPI | EHCI_RH_GetRootHubData (IN PVOID ehciExtension, IN PVOID rootHubData) |
| |
| MPSTATUS NTAPI | EHCI_RH_GetStatus (IN PVOID ehciExtension, IN PUSHORT Status) |
| |
| MPSTATUS NTAPI | EHCI_RH_GetPortStatus (IN PVOID ehciExtension, IN USHORT Port, IN PUSB_PORT_STATUS_AND_CHANGE PortStatus) |
| |
| MPSTATUS NTAPI | EHCI_RH_GetHubStatus (IN PVOID ehciExtension, IN PUSB_HUB_STATUS_AND_CHANGE HubStatus) |
| |
| VOID NTAPI | EHCI_RH_FinishReset (IN PVOID ehciExtension, IN PVOID Context) |
| |
| VOID NTAPI | EHCI_RH_PortResetComplete (IN PVOID ehciExtension, IN PVOID Context) |
| |
| MPSTATUS NTAPI | EHCI_RH_SetFeaturePortReset (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_SetFeaturePortPower (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_SetFeaturePortEnable (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_SetFeaturePortSuspend (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortEnable (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortPower (IN PVOID ehciExtension, IN USHORT Port) |
| |
| VOID NTAPI | EHCI_RH_PortResumeComplete (IN PVOID ehciExtension, IN PVOID Context) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortSuspend (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortEnableChange (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortConnectChange (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortResetChange (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortSuspendChange (IN PVOID ehciExtension, IN USHORT Port) |
| |
| MPSTATUS NTAPI | EHCI_RH_ClearFeaturePortOvercurrentChange (IN PVOID ehciExtension, IN USHORT Port) |
| |
| VOID NTAPI | EHCI_RH_DisableIrq (IN PVOID ehciExtension) |
| |
| VOID NTAPI | EHCI_RH_EnableIrq (IN PVOID ehciExtension) |
| |
◆ NDEBUG
◆ NDEBUG_EHCI_ROOT_HUB
◆ EHCI_RH_ChirpRootPort()
Definition at line 18 of file roothub.c.
20{
26
29
33
34 PortBit = 1 << (
Port - 1);
35
37 {
40 }
41
43 {
46 }
47
51 {
54 }
55
59 {
60
61
62
65
66 DPRINT_RH(
"EHCI_RH_ChirpRootPort: Companion HC port - %x\n",
Port);
68 }
69
70 DPRINT(
"EHCI_RH_ChirpRootPort: EhciExtension - %p, Port - %x\n",
71 EhciExtension,
73
77
79
80 do
81 {
83
88
90
91 for (ix = 0; ix <= 500; ix += 20)
92 {
95
97
99 break;
100 }
101 }
103
105
107 {
112
114
116
118 DPRINT_RH(
"EHCI_RH_ChirpRootPort: Disable port - %x\n",
Port);
119 }
120 else
121 {
124 DPRINT_RH(
"EHCI_RH_ChirpRootPort: Companion HC port - %x\n",
Port);
125 }
126
128}
#define WRITE_REGISTER_ULONG(r, v)
#define READ_REGISTER_ULONG(r)
#define EHCI_PORT_OWNER_COMPANION_CONTROLLER
#define EHCI_LINE_STATUS_K_STATE_LOW_SPEED
#define KeStallExecutionProcessor(MicroSeconds)
PEHCI_HW_REGISTERS OperationalRegs
EHCI_PORT_STATUS_CONTROL PortControl[15]
PUSBPORT_WAIT UsbPortWait
ULONG CurrentConnectStatus
ULONG PortEnableDisableChange
ULONG ConnectStatusChange
ULONG PortEnabledDisabled
USBPORT_REGISTRATION_PACKET RegPacket
#define MP_STATUS_SUCCESS
Referenced by DriverEntry(), and EHCI_StartController().
◆ EHCI_RH_ClearFeaturePortConnectChange()
Definition at line 591 of file roothub.c.
593{
597
598 DPRINT_RH(
"EHCI_RH_ClearFeaturePortConnectChange: Port - %x\n",
Port);
600
602
604
606 {
610
612 }
613
615
617}
Referenced by DriverEntry().
◆ EHCI_RH_ClearFeaturePortEnable()
◆ EHCI_RH_ClearFeaturePortEnableChange()
Definition at line 566 of file roothub.c.
568{
572
573 DPRINT(
"EHCI_RH_ClearFeaturePortEnableChange: Port - %p\n",
Port);
575
577
579
583
585
587}
Referenced by DriverEntry().
◆ EHCI_RH_ClearFeaturePortOvercurrentChange()
◆ EHCI_RH_ClearFeaturePortPower()
◆ EHCI_RH_ClearFeaturePortResetChange()
Definition at line 621 of file roothub.c.
623{
625
626 DPRINT(
"EHCI_RH_ClearFeaturePortConnectChange: Port - %x\n",
Port);
628
631}
ULONG FinishResetPortBits
Referenced by DriverEntry().
◆ EHCI_RH_ClearFeaturePortSuspend()
Definition at line 538 of file roothub.c.
540{
544
545 DPRINT(
"EHCI_RH_ClearFeaturePortSuspend: Port - %x\n",
Port);
547
550
554
556 50,
560
562}
PUSBPORT_REQUEST_ASYNC_CALLBACK UsbPortRequestAsyncCallback
VOID NTAPI EHCI_RH_PortResumeComplete(IN PVOID ehciExtension, IN PVOID Context)
Referenced by DriverEntry().
◆ EHCI_RH_ClearFeaturePortSuspendChange()
◆ EHCI_RH_DisableIrq()
Definition at line 674 of file roothub.c.
675{
679
681
684
687
690}
EHCI_INTERRUPT_ENABLE InterruptMask
EHCI_INTERRUPT_ENABLE HcInterruptEnable
ULONG PortChangeInterrupt
Referenced by DriverEntry().
◆ EHCI_RH_EnableIrq()
◆ EHCI_RH_FinishReset()
Definition at line 279 of file roothub.c.
281{
286
287 DPRINT(
"EHCI_RH_FinishReset: *Port - %x\n", *
Port);
288
291
293 {
295 DPRINT(
"EHCI_RH_FinishReset: PortSC.AsULONG - %X\n", PortSC.
AsULONG);
296
300 {
303 }
304 else
305 {
310 }
311
313 }
314}
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
PUSBPORT_INVALIDATE_ROOT_HUB UsbPortInvalidateRootHub
Referenced by EHCI_RH_PortResetComplete().
◆ EHCI_RH_GetHubStatus()
◆ EHCI_RH_GetPortStatus()
Definition at line 187 of file roothub.c.
190{
196
198
201
203 {
204 DPRINT_RH(
"EHCI_RH_GetPortStatus: Port - %x, PortSC.AsULONG - %X\n",
207 }
208
210
215 {
216 DPRINT(
"EHCI_RH_GetPortStatus: LowSpeed device detected\n");
220 }
221
223
232
235
236 PortMaskBits = 1 << (
Port - 1);
237
238 if (
status.PortStatus.Usb20PortStatus.CurrentConnectStatus)
239 status.PortStatus.Usb20PortStatus.LowSpeedDeviceAttached = 0;
240
241 status.PortStatus.Usb20PortStatus.HighSpeedDeviceAttached = 1;
242
245
247 status.PortChange.Usb20PortChange.ResetChange = 1;
248
250 status.PortChange.Usb20PortChange.ConnectStatusChange = 1;
251
253 status.PortChange.Usb20PortChange.SuspendChange = 1;
254
256
257 if (
status.PortStatus.Usb20PortStatus.CurrentConnectStatus)
258 {
259 DPRINT_RH(
"EHCI_RH_GetPortStatus: Port - %x, status.AsULONG - %X\n",
262 }
263
265}
#define USB20_PORT_STATUS_RESERVED1_OWNED_BY_COMPANION
Referenced by DriverEntry().
◆ EHCI_RH_GetRootHubData()
Definition at line 132 of file roothub.c.
134{
138
139 DPRINT_RH(
"EHCI_RH_GetRootHubData: EhciExtension - %p, rootHubData - %p\n",
140 EhciExtension,
141 rootHubData);
142
143 RootHubData = rootHubData;
144
146
148
149
151 {
152
154 }
155 else
156 {
157
159 }
160
162
163
165
166
168
170
173}
USBPORT_HUB_CHARACTERISTICS HubCharacteristics
USHORT PartOfCompoundDevice
USHORT OverCurrentProtectionMode
USBPORT_HUB_20_CHARACTERISTICS Usb20HubCharacteristics
Referenced by DriverEntry().
◆ EHCI_RH_GetStatus()
◆ EHCI_RH_PortResetComplete()
Definition at line 318 of file roothub.c.
320{
326
327 DPRINT(
"EHCI_RH_PortResetComplete: *Port - %x\n", *
Port);
328
330
331 do
332 {
334
339
341
342 for (ix = 0; ix <= 500; ix += 20)
343 {
346
347 DPRINT(
"EHCI_RH_PortResetComplete: Reset port - %x\n",
Port);
348
350 break;
351 }
352 }
354
356 50,
360}
VOID NTAPI EHCI_RH_FinishReset(IN PVOID ehciExtension, IN PVOID Context)
Referenced by EHCI_RH_SetFeaturePortReset().
◆ EHCI_RH_PortResumeComplete()
◆ EHCI_RH_SetFeaturePortEnable()
◆ EHCI_RH_SetFeaturePortPower()
◆ EHCI_RH_SetFeaturePortReset()
Definition at line 364 of file roothub.c.
366{
370
371 DPRINT(
"EHCI_RH_SetFeaturePortReset: Port - %x\n",
Port);
373
375
377
379
385
387
389 50,
393
395}
VOID NTAPI EHCI_RH_PortResetComplete(IN PVOID ehciExtension, IN PVOID Context)
Referenced by DriverEntry().
◆ EHCI_RH_SetFeaturePortSuspend()