TdVA = OhciEndpoint->FirstTD;
- TdPA = (ULONG)EndpointProperties->BufferPA + sizeof(OHCI_HCD_ED);
+ TdPA = EndpointProperties->BufferPA + sizeof(OHCI_HCD_ED);
for (ix = 0; ix < TdCount; ix++)
{
}
OhciExtension->HcResourcesVA = (POHCI_HC_RESOURCES)Resources->StartVA;
- OhciExtension->HcResourcesPA = (POHCI_HC_RESOURCES)Resources->StartPA;
+ OhciExtension->HcResourcesPA = Resources->StartPA;
- DPRINT_OHCI("OHCI_StartController: HcResourcesVA - %p, HcResourcesPA - %p\n",
+ DPRINT_OHCI("OHCI_StartController: HcResourcesVA - %p, HcResourcesPA - %lx\n",
OhciExtension->HcResourcesVA,
OhciExtension->HcResourcesPA);
for (ix = 0; ix < INTERRUPT_ENDPOINTs; ix++)
{
IntED = &OhciExtension->HcResourcesVA->InterrruptHeadED[ix];
- IntEdPA = (ULONG_PTR)&OhciExtension->HcResourcesPA->InterrruptHeadED[ix];
+ IntEdPA = OhciExtension->HcResourcesPA + FIELD_OFFSET(OHCI_HC_RESOURCES, InterrruptHeadED[ix]);
if (ix == (ENDPOINT_INTERRUPT_1ms - 1))
{
/* Setup HcHCCA register */
WRITE_REGISTER_ULONG(&OperationalRegs->HcHCCA,
- (ULONG)&OhciExtension->HcResourcesPA->HcHCCA);
+ OhciExtension->HcResourcesPA + FIELD_OFFSET(OHCI_HC_RESOURCES, HcHCCA));
/* Setup HcInterruptEnable register */
Interrupts.AsULONG = 0;
DPRINT_OHCI("OHCI_RemainTDs: ... \n");
MaxTDs = OhciEndpoint->MaxTransferDescriptors;
- TD = (POHCI_HCD_TD)OhciEndpoint->FirstTD;
+ TD = OhciEndpoint->FirstTD;
RemainTDs = 0;
IN PUSBPORT_SCATTER_GATHER_LIST SGList)
{
POHCI_HCD_TD FirstTD;
- POHCI_HCD_TD FirstTdPA;
+ ULONG FirstTdPA;
POHCI_HCD_TD TD;
POHCI_HCD_TD TD2;
POHCI_HCD_TD PrevTD;
FirstTD->Flags |= OHCI_HCD_TD_FLAG_PROCESSED;
FirstTD->NextHcdTD = 0;
- FirstTD->OhciTransfer = (ULONG)OhciTransfer;
+ FirstTD->OhciTransfer = OhciTransfer;
FirstTD->HwTD.Padded[0] = 0;
FirstTD->HwTD.Padded[1] = 0;
&TransferParameters->SetupPacket,
sizeof(FirstTD->HwTD.SetupPacket));
- FirstTdPA = (POHCI_HCD_TD)FirstTD->PhysicalAddress;
+ FirstTdPA = FirstTD->PhysicalAddress;
- FirstTD->HwTD.gTD.CurrentBuffer = (ULONG)&FirstTdPA->HwTD.SetupPacket;
+ FirstTD->HwTD.gTD.CurrentBuffer = FirstTdPA + FIELD_OFFSET(OHCI_HCD_TD, HwTD.SetupPacket);
- BufferEnd = (ULONG_PTR)&FirstTdPA->HwTD.SetupPacket +
- sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) - 1;
+ BufferEnd = FirstTdPA + FIELD_OFFSET(OHCI_HCD_TD, HwTD.SetupPacket) +
+ sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) - 1;
FirstTD->HwTD.gTD.BufferEnd = BufferEnd;
TD2->Flags |= OHCI_HCD_TD_FLAG_PROCESSED;
TD2->NextHcdTD = 0;
- TD2->OhciTransfer = (ULONG)OhciTransfer;
+ TD2->OhciTransfer = OhciTransfer;
RtlZeroMemory(&TD2->HwTD.SetupPacket,
sizeof(TD2->HwTD.SetupPacket));
TD = TD2;
PrevTD->HwTD.gTD.NextTD = TD2->PhysicalAddress;
- PrevTD->NextHcdTD = (ULONG)TD2;
+ PrevTD->NextHcdTD = TD2;
MaxPacketSize = OhciEndpoint->EndpointProperties.TotalMaxPacketSize;
TD->HwTD.gTD.Control.DelayInterrupt = OHCI_TD_INTERRUPT_NONE;
TD->NextHcdTD = 0;
- TD->OhciTransfer = (ULONG)OhciTransfer;
+ TD->OhciTransfer = OhciTransfer;
TD->HwTD.gTD.CurrentBuffer = 0;
TD->HwTD.gTD.BufferEnd = 0;
TD->HwTD.Padded[1] = 0;
PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress;
- PrevTD->NextHcdTD = (ULONG)TD;
+ PrevTD->NextHcdTD = TD;
}
if (TransferParameters->TransferFlags & USBD_SHORT_TRANSFER_OK)
NextTD = OHCI_AllocateTD(OhciExtension, OhciEndpoint);
TD->HwTD.gTD.NextTD = NextTD->PhysicalAddress;
- TD->NextHcdTD = (ULONG)NextTD;
+ TD->NextHcdTD = NextTD;
NextTD->NextHcdTD = 0;
NextTD->HwTD.gTD.NextTD = 0;
TD->HwTD.Padded[1] = 0;
TD->Flags |= OHCI_HCD_TD_FLAG_PROCESSED;
- TD->OhciTransfer = (ULONG)OhciTransfer;
+ TD->OhciTransfer = OhciTransfer;
TD->NextHcdTD = 0;
if (TransferParameters->TransferBufferLength)
OhciTransfer->PendingTDs++;
PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress;
- PrevTD->NextHcdTD = (ULONG)TD;
+ PrevTD->NextHcdTD = TD;
}
while (TransferedLen < TransferParameters->TransferBufferLength);
PrevTD->HwTD.gTD.Control.DelayInterrupt = OHCI_TD_INTERRUPT_IMMEDIATE;
PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress;
- PrevTD->NextHcdTD = (ULONG)TD;
+ PrevTD->NextHcdTD = TD;
TD->HwTD.gTD.NextTD = 0;
TD->NextHcdTD = 0;
DPRINT_OHCI("OHCI_ProcessDoneTD: ... \n");
- OhciTransfer = (POHCI_TRANSFER)TD->OhciTransfer;
+ OhciTransfer = TD->OhciTransfer;
OhciEndpoint = OhciTransfer->OhciEndpoint;
OhciTransfer->PendingTDs--;
OhciExtension,
OhciEndpoint);
- if (NextTD->OhciTransfer == (ULONG)OhciTransfer)
+ if (NextTD->OhciTransfer == OhciTransfer)
{
LastTD = OhciTransfer->NextTD;
{
TD = &OhciEndpoint->FirstTD[ix];
- if (TD->OhciTransfer == (ULONG)OhciTransfer)
+ if (TD->OhciTransfer == OhciTransfer)
{
if (IsIsoEndpoint)
OHCI_ProcessDoneIsoTD(OhciExtension, TD, FALSE);
do
{
- if (TD->OhciTransfer == (ULONG)ohciTransfer)
+ if (TD->OhciTransfer == ohciTransfer)
{
PrevTD = TD;
- TD = (POHCI_HCD_TD)TD->NextHcdTD;
+ TD = TD->NextHcdTD;
if (PrevTD == OhciEndpoint->HcdHeadP)
OhciEndpoint->HcdHeadP = TD;
}
else
{
- TD = (POHCI_HCD_TD)TD->NextHcdTD;
+ TD = TD->NextHcdTD;
}
}
while (TD != NextTD);
while (TD != OhciEndpoint->HcdTailP)
{
- if (TD->OhciTransfer == (ULONG)OhciTransfer)
+ if (TD->OhciTransfer == OhciTransfer)
{
td = TD;
break;
LastTD = TD;
- TD = (POHCI_HCD_TD)TD->NextHcdTD;
+ TD = TD->NextHcdTD;
}
TD = td;
break;
PrevTD = TD;
- TD = (POHCI_HCD_TD)TD->NextHcdTD;
+ TD = TD->NextHcdTD;
if (IsIsoEndpoint)
OHCI_ProcessDoneIsoTD(OhciExtension, PrevTD, FALSE);
else
OHCI_ProcessDoneTD(OhciExtension, PrevTD, FALSE);
}
- while (TD->OhciTransfer == (ULONG)OhciTransfer);
+ while (TD->OhciTransfer == OhciTransfer);
- TmpTransfer = (POHCI_TRANSFER)LastTD->OhciTransfer;
+ TmpTransfer = LastTD->OhciTransfer;
TmpTransfer->NextTD = TD;
- LastTD->NextHcdTD = (ULONG)TD;
+ LastTD->NextHcdTD = TD;
LastTD->HwTD.gTD.NextTD = TD->PhysicalAddress;
}
IsResetOnHalt = (ED->Flags & OHCI_HCD_ED_FLAG_RESET_ON_HALT) != 0;
DPRINT1("PollAsyncEndpoint: IsResetOnHalt %x\n", IsResetOnHalt);
- for (TD = OhciEndpoint->HcdHeadP; ; TD = (POHCI_HCD_TD)TD->NextHcdTD)
+ for (TD = OhciEndpoint->HcdHeadP; ; TD = TD->NextHcdTD)
{
if (!TD)
{
goto HandleDoneList;
}
- OhciTransfer = (POHCI_TRANSFER)TD->OhciTransfer;
+ OhciTransfer = TD->OhciTransfer;
ConditionCode = TD->HwTD.gTD.Control.ConditionCode;
DPRINT("TD - %p, ConditionCode - %X\n", TD, ConditionCode);
do
{
- transfer = (POHCI_TRANSFER)transfer->NextTD->OhciTransfer;
+ transfer = transfer->NextTD->OhciTransfer;
NextTD = transfer->NextTD;
}
while (transfer && TransferNumber ==
OHCI_DumpHcdTD(TD);
TD->Flags |= OHCI_HCD_TD_FLAG_DONE;
InsertTailList(&OhciEndpoint->TDList, &TD->DoneLink);
- TD = (POHCI_HCD_TD)TD->NextHcdTD;
+ TD = TD->NextHcdTD;
}
HandleDoneList: