diff --git a/src/add-ons/kernel/busses/usb/ohci.cpp b/src/add-ons/kernel/busses/usb/ohci.cpp index 3c23908e53..f38058b6fb 100644 --- a/src/add-ons/kernel/busses/usb/ohci.cpp +++ b/src/add-ons/kernel/busses/usb/ohci.cpp @@ -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; }