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 9afce47e69dfe0a6c518f6546bc60b8b88489da5..1755c668ac05fe53c514be641af7622032c96119 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 bfb3fab20795058e526658c8a49f3ef99ddf3aff..ec4817003a56663468d927203ae65e9237e06349 100644 (file)
@@ -799,6 +799,7 @@ struct xhci_virt_device {
        u32                             cmd_status;
        struct list_head                cmd_list;
        u8                              fake_port;
+       u8                              real_port;
 };