qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 10/11] usb-uhci: Add support for being a compani


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH 10/11] usb-uhci: Add support for being a companion controller
Date: Wed, 29 Jun 2011 12:57:36 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Red Hat/3.1.11-2.el6_1 Thunderbird/3.1.11

  Hi,

+    if (s->masterbus) {
+        USBPort *ports[NB_PORTS];
+        for(i = 0; i<  NB_PORTS; i++) {
+            s->ports[i].port.ops =&uhci_port_ops;
+            s->ports[i].port.opaque = s;
+            s->ports[i].port.index = i;
+            s->ports[i].port.speedmask =
+                USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL;
+            usb_port_location(&s->ports[i].port, NULL, i+1);
+            ports[i] =&s->ports[i].port;
+        }
+        if (usb_bus_register_companion(s->masterbus, ports, NB_PORTS,
+                                       s->firstport) != 0) {
+            return -1;
+        }
+    } else {
+        usb_bus_new(&s->bus,&uhci_bus_ops,&s->dev.qdev);
+        for(i = 0; i<  NB_PORTS; i++) {
+            usb_register_port(&s->bus,&s->ports[i].port, s, i,&uhci_port_ops,
+                              USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL);
+            usb_port_location(&s->ports[i].port, NULL, i+1);
+        }

This looks like we'll want a usb_register_companion_port() function which looks like usb_register_port() but accepts masterbus & portindex instead of a USBBus pointer. Then register the companion ports one by one, so that the code path for the companion case looks almost identical to the non-companion case.

Otherwise the whole patchset looks very good.

cheers,
  Gerd



reply via email to

[Prev in Thread] Current Thread [Next in Thread]