提交 40862309 编写于 作者: G Gerd Hoffmann

ehci: keep the frame timer running in case the guest asked for frame list rollover interrupts

Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 2c7b15c1
......@@ -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 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册