ehci: keep the frame timer running in case the guest asked for frame list rollover interrupts
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
2c7b15c1de
commit
40862309a9
|
@ -964,6 +964,9 @@ static void ehci_opreg_write(void *ptr, hwaddr addr,
|
|||
|
||||
case USBINTR:
|
||||
val &= USBINTR_MASK;
|
||||
if (ehci_enabled(s) && (USBSTS_FLR & val)) {
|
||||
qemu_bh_schedule(s->async_bh);
|
||||
}
|
||||
break;
|
||||
|
||||
case FRINDEX:
|
||||
|
@ -2220,6 +2223,10 @@ static void ehci_frame_timer(void *opaque)
|
|||
ehci->async_stepdown = 0;
|
||||
}
|
||||
|
||||
if (ehci_enabled(ehci) && (ehci->usbintr & USBSTS_FLR)) {
|
||||
need_timer++;
|
||||
}
|
||||
|
||||
if (need_timer) {
|
||||
/* If we've raised int, we speed up the timer, so that we quickly
|
||||
* notice any new packets queued up in response */
|
||||
|
|
Loading…
Reference in a new issue