mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 00:43:21 +00:00
[USBOHCI]
- Don't turn off interrupts before setting the OHCI_OWNERSHIP_CHANGE_REQUEST bit because it prevents the SMM driver from receiving the interrupt that tells it to give up ownership of the host controller - This fix should be merged to Haiku also which has the same bug svn path=/branches/usb-bringup-trunk/; revision=55170
This commit is contained in:
parent
75676e7e49
commit
6c55f96de8
|
@ -883,11 +883,6 @@ CUSBHardwareDevice::StopController(void)
|
|||
ULONG Control, Reset, Status;
|
||||
ULONG Index, FrameInterval;
|
||||
|
||||
//
|
||||
// first turn off all interrupts
|
||||
//
|
||||
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_DISABLE_OFFSET), OHCI_ALL_INTERRUPTS);
|
||||
|
||||
//
|
||||
// check context
|
||||
//
|
||||
|
@ -931,18 +926,17 @@ CUSBHardwareDevice::StopController(void)
|
|||
if (Control & OHCI_INTERRUPT_ROUTING)
|
||||
{
|
||||
DPRINT1("SMM not responding\n");
|
||||
//
|
||||
// some controllers also depend on this
|
||||
//
|
||||
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_CONTROL_OFFSET), OHCI_HC_FUNCTIONAL_STATE_RESET);
|
||||
|
||||
//
|
||||
// wait a bit
|
||||
//
|
||||
KeStallExecutionProcessor(100);
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("SMM has given up ownership\n");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// turn off interrupts
|
||||
//
|
||||
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_DISABLE_OFFSET), OHCI_ALL_INTERRUPTS);
|
||||
|
||||
//
|
||||
// have a break
|
||||
|
|
Loading…
Reference in a new issue