mirror of https://github.com/xqemu/xqemu.git
usb-host: fix usb3ep0quirk test
usb->speed is the usb speed the device is actually running on in the qemu emulation (i.e. from the guests point of view). So when plugging usb3 devices into ehci hostadapter this is HIGH not SUPER. To figure whenever the host talks to the device with superspeed we have to check speedmask instead and see whenever the superspeed bit is set there. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1445603230-11840-1-git-send-email-kraxel@redhat.com
This commit is contained in:
parent
cbf82fa01e
commit
a9be4e7c48
|
@ -1240,7 +1240,7 @@ static void usb_host_handle_control(USBDevice *udev, USBPacket *p,
|
||||||
|
|
||||||
/* Fix up USB-3 ep0 maxpacket size to allow superspeed connected devices
|
/* Fix up USB-3 ep0 maxpacket size to allow superspeed connected devices
|
||||||
* to work redirected to a not superspeed capable hcd */
|
* to work redirected to a not superspeed capable hcd */
|
||||||
if (udev->speed == USB_SPEED_SUPER &&
|
if ((udev->speedmask & USB_SPEED_MASK_SUPER) &&
|
||||||
!(udev->port->speedmask & USB_SPEED_MASK_SUPER) &&
|
!(udev->port->speedmask & USB_SPEED_MASK_SUPER) &&
|
||||||
request == 0x8006 && value == 0x100 && index == 0) {
|
request == 0x8006 && value == 0x100 && index == 0) {
|
||||||
r->usb3ep0quirk = true;
|
r->usb3ep0quirk = true;
|
||||||
|
|
Loading…
Reference in New Issue