From 3dfadd12ae4f04d206530889ef28719258865180 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Fri, 20 May 2011 15:06:39 +0000 Subject: [PATCH] [USBEHCI] - Enable sync frame list svn path=/branches/usb-bringup/; revision=51827 --- drivers/usb/usbehci_new/hardware.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/usb/usbehci_new/hardware.cpp b/drivers/usb/usbehci_new/hardware.cpp index 2e20a64f3c8..52b764ac100 100644 --- a/drivers/usb/usbehci_new/hardware.cpp +++ b/drivers/usb/usbehci_new/hardware.cpp @@ -116,6 +116,7 @@ protected: BOOLEAN m_DoorBellRingInProgress; // door bell ring in progress EHCI_PORT_STATUS m_PortStatus[16]; // port status WORK_QUEUE_ITEM m_StatusChangeWorkItem; // work item for status change callback + ULONG m_SyncFramePhysAddr; // periodic frame list physical address // set command VOID SetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd); @@ -563,11 +564,16 @@ CUSBHardwareDevice::StartController(void) // EHCI_WRITE_REGISTER_ULONG(EHCI_ASYNCLISTBASE, AsyncQueueHead->PhysicalAddr); + // + // Assign the SyncList Register + // + EHCI_WRITE_REGISTER_ULONG(EHCI_PERIODICLISTBASE, m_SyncFramePhysAddr); + // // Set Schedules to Enable and Interrupt Threshold to 1ms. // GetCommandRegister(&UsbCmd); - UsbCmd.PeriodicEnable = FALSE; + UsbCmd.PeriodicEnable = TRUE; UsbCmd.AsyncEnable = TRUE; //FIXME: Need USB Memory Manager UsbCmd.IntThreshold = 1; @@ -894,7 +900,10 @@ VOID CUSBHardwareDevice::SetPeriodicListRegister( ULONG PhysicalAddress) { - EHCI_WRITE_REGISTER_ULONG(EHCI_PERIODICLISTBASE, PhysicalAddress); + // + // store physical address + // + m_SyncFramePhysAddr = PhysicalAddress; } struct _QUEUE_HEAD *