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.8.0~95 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=67d1fbef0f630e1e823f137d1bae7fa5790bcf4e;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 --- diff --git a/src/hw/usb-ehci.c b/src/hw/usb-ehci.c index 20e387b..f5ee5bf 100644 --- a/src/hw/usb-ehci.c +++ b/src/hw/usb-ehci.c @@ -366,7 +366,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;