* Disable the root hub change interrupt when it gets triggered. As the change

status stays on until the port is reset, this causes the interrupt to be
  constantly retriggered on some controllers.
* Added TODO that we need to reenable it once we want to take advantage of
  status change notifications instead of polling. It should be reenabled when
  clearing roothub status changes in ClearPortFeature().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25578 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2008-05-20 20:37:18 +00:00
parent 17321b91fb
commit 307fe93f85

View File

@ -756,6 +756,10 @@ OHCI::_Interrupt()
if (status & OHCI_ROOT_HUB_STATUS_CHANGE) {
TRACE(("usb_ohci: root hub status change\n"));
// Disable the interrupt as it will otherwise be retriggered until the
// port has been reset and the change is cleared explicitly.
// TODO: renable it once we use status changes instead of polling
_WriteReg(OHCI_INTERRUPT_DISABLE, OHCI_ROOT_HUB_STATUS_CHANGE);
acknowledge |= OHCI_ROOT_HUB_STATUS_CHANGE;
}