aboutsummaryrefslogtreecommitdiff
path: root/hw/usb-hub.c
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2011-05-05 13:04:57 -0500
committerAnthony Liguori <aliguori@us.ibm.com>2011-05-05 13:04:57 -0500
commita69fb35079f682f99dd4d077b76232763d832d42 (patch)
tree5275bd5b172eea2db7b9490d49c0d43de174e807 /hw/usb-hub.c
parent196a778428989217b82de042725dc8eb29c8f8d8 (diff)
parentef0bdf77d7070494692cbccd80c4c8f08c85c240 (diff)
Merge remote-tracking branch 'kraxel/usb.7.pull' into staging
Diffstat (limited to 'hw/usb-hub.c')
-rw-r--r--hw/usb-hub.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/hw/usb-hub.c b/hw/usb-hub.c
index 3dd31ba31f..e0588f891d 100644
--- a/hw/usb-hub.c
+++ b/hw/usb-hub.c
@@ -256,6 +256,19 @@ static void usb_hub_wakeup(USBDevice *dev)
}
}
+static void usb_hub_complete(USBDevice *dev, USBPacket *packet)
+{
+ USBHubState *s = dev->port->opaque;
+
+ /*
+ * Just pass it along upstream for now.
+ *
+ * If we ever inplement usb 2.0 split transactions this will
+ * become a little more complicated ...
+ */
+ usb_packet_complete(&s->dev, packet);
+}
+
static void usb_hub_handle_attach(USBDevice *dev)
{
USBHubState *s = DO_UPCAST(USBHubState, dev, dev);
@@ -524,6 +537,7 @@ static USBPortOps usb_hub_port_ops = {
.attach = usb_hub_attach,
.detach = usb_hub_detach,
.wakeup = usb_hub_wakeup,
+ .complete = usb_hub_complete,
};
static int usb_hub_initfn(USBDevice *dev)