]> xenbits.xensource.com Git - seabios.git/commitdiff
ehci: Fix bug in hub port assignment
authorKevin O'Connor <kevin@koconnor.net>
Fri, 12 Sep 2014 15:59:23 +0000 (11:59 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Tue, 16 Sep 2014 15:16:40 +0000 (11:16 -0400)
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 <kevin@koconnor.net>
src/hw/usb-ehci.c

index 20e387b1202907cfca13b7da9dde6c3209594a02..f5ee5bf7aee0bc44d40f974ed1b883dbd8de2d7d 100644 (file)
@@ -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;