From: Lubomir Rintel Reset the UHCI controller before enabling its interrupt. Index: drivers/usb/nt4compat/usbdriver/uhci.c =================================================================== --- drivers/usb/nt4compat/usbdriver/uhci.c (revision 43337) +++ drivers/usb/nt4compat/usbdriver/uhci.c (working copy) @@ -128,6 +128,8 @@ extern VOID rh_timer_svc_int_completion(PUSB_DEV dev, PVOID context); +static VOID uhci_reset(PUHCI_DEV uhci); + ULONG debug_level = DBGLVL_MINIMUM;//DBGLVL_MAXIMUM; PDRIVER_OBJECT usb_driver_obj = NULL; extern USB_DEV_MANAGER g_dev_mgr; @@ -840,6 +842,9 @@ &irql, &affinity); + // Put the controller into known state + uhci_reset (pdev_ext->uhci); + //connect the interrupt DbgPrint("uhci_alloc(): the int=0x%x\n", vector); if (IoConnectInterrupt(&pdev_ext->uhci_int,