From bc8a06350c3e061bb831182e90b49e031d40bd4f Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Fri, 12 Sep 2014 11:59:23 -0400 Subject: ehci: Fix bug in hub port assignment The usbdev->port field is zero indexed, while the USB spec expects the port values to start at one. Signed-off-by: Kevin O'Connor (cherry picked from commit 67d1fbef0f630e1e823f137d1bae7fa5790bcf4e) --- src/hw/usb-ehci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hw/usb-ehci.c b/src/hw/usb-ehci.c index 9d9427b..17a7e8b 100644 --- a/src/hw/usb-ehci.c +++ b/src/hw/usb-ehci.c @@ -372,7 +372,7 @@ ehci_desc2pipe(struct ehci_pipe *pipe, struct usbdevice_s *usbdev struct ehci_pipe *hpipe = container_of( hubdev->defpipe, struct ehci_pipe, pipe); if (hpipe->pipe.speed == USB_HIGHSPEED) - pipe->qh.info2 |= ((usbdev->port << QH_HUBPORT_SHIFT) + pipe->qh.info2 |= (((usbdev->port+1) << QH_HUBPORT_SHIFT) | (hpipe->pipe.devaddr << QH_HUBADDR_SHIFT)); else pipe->qh.info2 = hpipe->qh.info2; -- cgit v1.1