[USBPORT] Add USB2_GetHsOverhead().

This commit is contained in:
Vadim Galyant 2017-12-05 16:56:07 +09:00 committed by Amine Khaldi
parent 2d4bd7b744
commit 720d7cfd9b
2 changed files with 56 additions and 0 deletions

View file

@ -159,6 +159,53 @@ USB2_GetOverhead(IN PUSB2_TT_ENDPOINT TtEndpoint)
return Overhead; return Overhead;
} }
VOID
NTAPI
USB2_GetHsOverhead(IN PUSB2_TT_ENDPOINT TtEndpoint,
IN PULONG OverheadSS,
IN PULONG OverheadCS)
{
ULONG TransferType;
ULONG Direction;
ULONG HostDelay;
TransferType = TtEndpoint->TtEndpointParams.TransferType;
Direction = TtEndpoint->TtEndpointParams.Direction;
HostDelay = TtEndpoint->Tt->HcExtension->HcDelayTime;
if (Direction == USBPORT_TRANSFER_DIRECTION_OUT)
{
if (TransferType == USBPORT_TRANSFER_TYPE_ISOCHRONOUS)
{
*OverheadSS = HostDelay + USB2_HS_SS_ISOCHRONOUS_OUT_OVERHEAD;
*OverheadCS = 0;
}
else
{
*OverheadSS = HostDelay + USB2_HS_SS_INTERRUPT_OUT_OVERHEAD;
*OverheadCS = HostDelay + USB2_HS_CS_INTERRUPT_OUT_OVERHEAD;
}
}
else
{
if (TransferType == USBPORT_TRANSFER_TYPE_ISOCHRONOUS)
{
*OverheadSS = HostDelay + USB2_HS_SS_ISOCHRONOUS_IN_OVERHEAD;
*OverheadCS = HostDelay + USB2_HS_CS_ISOCHRONOUS_IN_OVERHEAD;
}
else
{
*OverheadSS = HostDelay + USB2_HS_SS_INTERRUPT_IN_OVERHEAD;
*OverheadCS = HostDelay + USB2_HS_CS_INTERRUPT_IN_OVERHEAD;
}
DPRINT("USB2_GetHsOverhead: *OverheadSS - %X, *OverheadCS - %X\n",
*OverheadSS,
*OverheadCS);
}
}
ULONG ULONG
NTAPI NTAPI
USB2_GetLastIsoTime(IN PUSB2_TT_ENDPOINT TtEndpoint, USB2_GetLastIsoTime(IN PUSB2_TT_ENDPOINT TtEndpoint,

View file

@ -469,6 +469,15 @@ typedef struct _TIMER_WORK_QUEUE_ITEM {
#define USB2_HS_ISOCHRONOUS_OUT_OVERHEAD 38 #define USB2_HS_ISOCHRONOUS_OUT_OVERHEAD 38
#define USB2_HS_ISOCHRONOUS_IN_OVERHEAD 18 #define USB2_HS_ISOCHRONOUS_IN_OVERHEAD 18
#define USB2_HS_SS_INTERRUPT_OUT_OVERHEAD 58
#define USB2_HS_CS_INTERRUPT_OUT_OVERHEAD 36
#define USB2_HS_SS_INTERRUPT_IN_OVERHEAD 39
#define USB2_HS_CS_INTERRUPT_IN_OVERHEAD 38
#define USB2_HS_SS_ISOCHRONOUS_OUT_OVERHEAD 58
#define USB2_HS_SS_ISOCHRONOUS_IN_OVERHEAD 39
#define USB2_HS_CS_ISOCHRONOUS_IN_OVERHEAD 38
typedef union _USB2_TT_ENDPOINT_PARAMS { typedef union _USB2_TT_ENDPOINT_PARAMS {
struct { struct {
ULONG TransferType : 4; ULONG TransferType : 4;