mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 02:36:13 +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
1 changed files with 8 additions and 14 deletions
|
@ -883,11 +883,6 @@ CUSBHardwareDevice::StopController(void)
|
||||||
ULONG Control, Reset, Status;
|
ULONG Control, Reset, Status;
|
||||||
ULONG Index, FrameInterval;
|
ULONG Index, FrameInterval;
|
||||||
|
|
||||||
//
|
|
||||||
// first turn off all interrupts
|
|
||||||
//
|
|
||||||
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_DISABLE_OFFSET), OHCI_ALL_INTERRUPTS);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// check context
|
// check context
|
||||||
//
|
//
|
||||||
|
@ -931,18 +926,17 @@ CUSBHardwareDevice::StopController(void)
|
||||||
if (Control & OHCI_INTERRUPT_ROUTING)
|
if (Control & OHCI_INTERRUPT_ROUTING)
|
||||||
{
|
{
|
||||||
DPRINT1("SMM not responding\n");
|
DPRINT1("SMM not responding\n");
|
||||||
//
|
}
|
||||||
// some controllers also depend on this
|
else
|
||||||
//
|
{
|
||||||
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_CONTROL_OFFSET), OHCI_HC_FUNCTIONAL_STATE_RESET);
|
DPRINT1("SMM has given up ownership\n");
|
||||||
|
|
||||||
//
|
|
||||||
// wait a bit
|
|
||||||
//
|
|
||||||
KeStallExecutionProcessor(100);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// turn off interrupts
|
||||||
|
//
|
||||||
|
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_DISABLE_OFFSET), OHCI_ALL_INTERRUPTS);
|
||||||
|
|
||||||
//
|
//
|
||||||
// have a break
|
// have a break
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue