diff options
| author | Gerd Hoffmann <kraxel@redhat.com> | 2014-05-23 16:20:54 +0200 |
|---|---|---|
| committer | Gerd Hoffmann <kraxel@redhat.com> | 2014-06-02 16:29:00 +0200 |
| commit | b791c3b38c7969cb9f4acda8229e19fd865a1c08 (patch) | |
| tree | 2c239c2e37373914733ad011c50fd4a29c4c6f4a /hw/usb/desc.c | |
| parent | 322fd1f4f7c884c75749398bf48e01bd4b226e9f (diff) | |
| download | focaccia-qemu-b791c3b38c7969cb9f4acda8229e19fd865a1c08.tar.gz focaccia-qemu-b791c3b38c7969cb9f4acda8229e19fd865a1c08.zip | |
usb: add usb_pick_speed
We can pick the usb port speed in generic code, by looking at the port and device speed masks and looking for the fastest match. So add a function to do exactly that, and drop the speed setting code from usb_desc_attach as it isn't needed any more. This way we can set the device speed before calling port->ops->attach, which fixes some xhci hotplug issues. https://bugzilla.redhat.com/show_bug.cgi?id=1046873 Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb/desc.c')
| -rw-r--r-- | hw/usb/desc.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/hw/usb/desc.c b/hw/usb/desc.c index ab48691363..b82c397ef9 100644 --- a/hw/usb/desc.c +++ b/hw/usb/desc.c @@ -518,18 +518,6 @@ void usb_desc_init(USBDevice *dev) void usb_desc_attach(USBDevice *dev) { - const USBDesc *desc = usb_device_get_usb_desc(dev); - - assert(desc != NULL); - if (desc->super && (dev->port->speedmask & USB_SPEED_MASK_SUPER)) { - dev->speed = USB_SPEED_SUPER; - } else if (desc->high && (dev->port->speedmask & USB_SPEED_MASK_HIGH)) { - dev->speed = USB_SPEED_HIGH; - } else if (desc->full && (dev->port->speedmask & USB_SPEED_MASK_FULL)) { - dev->speed = USB_SPEED_FULL; - } else { - return; - } usb_desc_setdefaults(dev); } |