From: Kevin O'Connor Date: Fri, 12 Sep 2014 15:59:23 +0000 (-0400) Subject: ehci: Fix bug in hub port assignment X-Git-Tag: rel-1.7.5.1~1 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=bc8a06350c3e061bb831182e90b49e031d40bd4f;p=seabios.git 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) --- 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;