diff options
| author | Hans de Goede <hdegoede@redhat.com> | 2012-11-17 12:47:14 +0100 |
|---|---|---|
| committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-12-04 14:41:54 +0100 |
| commit | 8beba9304391189666df1b62b23a5101b3831317 (patch) | |
| tree | 5d124e37ef889c4bd332597d6f0ef7233b2ce117 /hw/usb/redirect.c | |
| parent | f1ae2e3883c4ee3a9f91f484690abe42f5063d64 (diff) | |
| download | focaccia-qemu-8beba9304391189666df1b62b23a5101b3831317.tar.gz focaccia-qemu-8beba9304391189666df1b62b23a5101b3831317.zip | |
usb: Call wakeup when data becomes available for all devices with int eps
This is necessary for proper interaction with the xhci controller, and it will allow other hcds to lower there frame timer while waiting for interrupt data. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb/redirect.c')
| -rw-r--r-- | hw/usb/redirect.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 490c90fae1..9e7f6453f7 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -1644,6 +1644,10 @@ static void usbredir_interrupt_packet(void *priv, uint64_t id, return; } + if (QTAILQ_EMPTY(&dev->endpoint[EP2I(ep)].bufpq)) { + usb_wakeup(usb_ep_get(&dev->dev, USB_TOKEN_IN, ep & 0x0f)); + } + /* bufp_alloc also adds the packet to the ep queue */ bufp_alloc(dev, data, data_len, interrupt_packet->status, ep); } else { |