Revision 2cae4119 hw/usb/hcd-xhci.c

b/hw/usb/hcd-xhci.c
662 662

  
663 663
static void xhci_intr_raise(XHCIState *xhci)
664 664
{
665
    if (!(xhci->iman & IMAN_IP) ||
666
        !(xhci->iman & IMAN_IE)) {
665
    xhci->erdp_low |= ERDP_EHB;
666
    xhci->iman |= IMAN_IP;
667
    xhci->usbsts |= USBSTS_EINT;
668

  
669
    if (!(xhci->iman & IMAN_IE)) {
667 670
        return;
668 671
    }
669 672

  
......
784 787
    }
785 788

  
786 789
    if (do_irq) {
787
        xhci->erdp_low |= ERDP_EHB;
788
        xhci->iman |= IMAN_IP;
789
        xhci->usbsts |= USBSTS_EINT;
790 790
        xhci_intr_raise(xhci);
791 791
    }
792 792

  
......
847 847
        xhci_write_event(xhci, event);
848 848
    }
849 849

  
850
    xhci->erdp_low |= ERDP_EHB;
851
    xhci->iman |= IMAN_IP;
852
    xhci->usbsts |= USBSTS_EINT;
853

  
854 850
    xhci_intr_raise(xhci);
855 851
}
856 852

  

Also available in: Unified diff