mirror of
https://github.com/reactos/reactos.git
synced 2025-07-10 10:04:13 +00:00
[USBEHCI_NEW]
- Change interface to return real async queue head - Set the async queue head register after the controller has been started - Enable async queue in StartController - Port DumpDeviceDescriptor from mjmartin usbehci driver - Remove pseudo queue head from usb queue, instead use the real async queue head exported from IUSBHardwareDevice - Get physical address for transfer data in BuildControlTransferQueueHead - Retrieving device descriptor now ~works, currently stops at setting device address (needs more work) svn path=/branches/usb-bringup/; revision=51476
This commit is contained in:
parent
8df637b778
commit
ede1d48da4
5 changed files with 82 additions and 36 deletions
|
@ -603,6 +603,12 @@ CUSBRequest::BuildControlTransferQueueHead(
|
|||
m_TransferDescriptors[1]->Token.Bits.PIDCode = PID_CODE_IN_TOKEN;
|
||||
m_TransferDescriptors[1]->Token.Bits.TotalBytesToTransfer = m_TransferBufferLength;
|
||||
|
||||
//
|
||||
// FIXME: check if the request spawns over a page -> fill other members
|
||||
//
|
||||
PC_ASSERT(m_TransferBufferLength <= PAGE_SIZE);
|
||||
m_TransferDescriptors[1]->BufferPointer[0] = MmGetPhysicalAddress(MmGetMdlVirtualAddress(m_TransferBufferMDL)).LowPart;
|
||||
|
||||
//
|
||||
// setup out descriptor
|
||||
//
|
||||
|
@ -845,12 +851,11 @@ NTSTATUS
|
|||
CUSBRequest::BuildSetupPacket()
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PHYSICAL_ADDRESS PhysicalAddress;
|
||||
|
||||
//
|
||||
// allocate common buffer setup packet
|
||||
//
|
||||
Status = m_DmaManager->Allocate(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET), (PVOID*)&m_DescriptorPacket, &PhysicalAddress);
|
||||
Status = m_DmaManager->Allocate(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET), (PVOID*)&m_DescriptorPacket, &m_DescriptorSetupPacket);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
//
|
||||
|
@ -865,7 +870,6 @@ CUSBRequest::BuildSetupPacket()
|
|||
// copy setup packet
|
||||
//
|
||||
RtlCopyMemory(m_DescriptorPacket, m_SetupPacket, sizeof(USB_DEFAULT_PIPE_SETUP_PACKET));
|
||||
m_DescriptorSetupPacket = PhysicalAddress;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue