xhci: Store the "real" root port number.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 2 Sep 2011 18:05:45 +0000 (11:05 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Sep 2011 22:52:53 +0000 (15:52 -0700)
Since the xHCI driver now has split USB2/USB3 roothubs, devices under each
roothub can have duplicate "fake" port numbers.  For the next set of
patches, we need to keep track of the "real" port number that the xHCI
host uses to index into the port status arrays.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/xhci-mem.c
drivers/usb/host/xhci.h

index 9afce47..1755c66 100644 (file)
@@ -922,6 +922,7 @@ int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *ud
                        top_dev = top_dev->parent)
                /* Found device below root hub */;
        dev->fake_port = top_dev->portnum;
+       dev->real_port = port_num;
        xhci_dbg(xhci, "Set root hub portnum to %d\n", port_num);
        xhci_dbg(xhci, "Set fake root hub portnum to %d\n", dev->fake_port);
 
index bfb3fab..ec48170 100644 (file)
@@ -799,6 +799,7 @@ struct xhci_virt_device {
        u32                             cmd_status;
        struct list_head                cmd_list;
        u8                              fake_port;
+       u8                              real_port;
 };