I use the qemu-2.7 and seabios-1.10.1 to start the windows 7 guest. And the xhci controller is passthroughed to 
the guest. When the safe mode interface of the windows 7 appears, keyboard sometimes doesn't work and I can 
not choose any mode. 
    I have referred to seabios code about xhci configuration and find that after initializing USB keyboard, the timer
ISR will check usb event periodically. Normally, the "xhci_process_events" function can process the keyboard events,
but now TRB_C bit of xhci controller has been unchanged and "xhci_process_events" function derectly return. So
keyboard didn't work. I want to know why  TRB_C bit of xhci controller is always unchanged. Hope somebody can 
help me.
    Sorry for my poor English.

static void xhci_process_events(struct usb_xhci_s *xhci)
{
    struct xhci_ring *evts = xhci->evts;

    for (;;) {
        /* check for event */
        u32 nidx = evts->nidx;
        u32 cs = evts->cs;
        struct xhci_trb *etrb = evts->ring + nidx;
        u32 control = etrb->control;
        if ((control & TRB_C) != (cs ? 1 : 0))
            return;//stop here
....
....}