mirror of
https://github.com/reactos/reactos.git
synced 2025-07-13 23:24:13 +00:00
[USBEHCI_NEW]
- Set the NakCountReload to 0 in the QueueHead that is set in the Async register, as this is a dead QueueHead marked as halted and does not need it. - Set the Async register in StartController. Note: The Async and Periodic registers can only be modified when the controller is stopped. - Driver now works in Qemu. svn path=/branches/usb-bringup/; revision=51491
This commit is contained in:
parent
20a1892864
commit
07dbb71da0
1 changed files with 3 additions and 14 deletions
|
@ -417,7 +417,7 @@ CUSBHardwareDevice::PnpStart(
|
||||||
AsyncQueueHead->EndPointCharacteristics.HeadOfReclamation = TRUE;
|
AsyncQueueHead->EndPointCharacteristics.HeadOfReclamation = TRUE;
|
||||||
AsyncQueueHead->Token.Bits.Halted = TRUE;
|
AsyncQueueHead->Token.Bits.Halted = TRUE;
|
||||||
AsyncQueueHead->EndPointCharacteristics.MaximumPacketLength = 64;
|
AsyncQueueHead->EndPointCharacteristics.MaximumPacketLength = 64;
|
||||||
AsyncQueueHead->EndPointCharacteristics.NakCountReload = 0xF;
|
AsyncQueueHead->EndPointCharacteristics.NakCountReload = 0;
|
||||||
AsyncQueueHead->EndPointCharacteristics.EndPointSpeed = QH_ENDPOINT_HIGHSPEED;
|
AsyncQueueHead->EndPointCharacteristics.EndPointSpeed = QH_ENDPOINT_HIGHSPEED;
|
||||||
AsyncQueueHead->EndPointCapabilities.NumberOfTransactionPerFrame = 0x03;
|
AsyncQueueHead->EndPointCapabilities.NumberOfTransactionPerFrame = 0x03;
|
||||||
|
|
||||||
|
@ -439,18 +439,6 @@ CUSBHardwareDevice::PnpStart(
|
||||||
DPRINT1("Starting Controller\n");
|
DPRINT1("Starting Controller\n");
|
||||||
Status = StartController();
|
Status = StartController();
|
||||||
|
|
||||||
//
|
|
||||||
// check for success
|
|
||||||
//
|
|
||||||
if (NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// set async list head
|
|
||||||
//
|
|
||||||
SetAsyncListRegister(AsyncQueueHead->PhysicalAddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// done
|
// done
|
||||||
//
|
//
|
||||||
|
@ -560,8 +548,9 @@ CUSBHardwareDevice::StartController(void)
|
||||||
EHCI_WRITE_REGISTER_ULONG(EHCI_USBSTS, 0x0000001f);
|
EHCI_WRITE_REGISTER_ULONG(EHCI_USBSTS, 0x0000001f);
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME: Assign the AsyncList Register
|
// Assign the AsyncList Register
|
||||||
//
|
//
|
||||||
|
EHCI_WRITE_REGISTER_ULONG(EHCI_ASYNCLISTBASE, AsyncQueueHead->PhysicalAddr);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set Schedules to Enable and Interrupt Threshold to 1ms.
|
// Set Schedules to Enable and Interrupt Threshold to 1ms.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue