Skip to content
  • Sarah Sharp's avatar
    USB: Add route string to struct usb_device. · 7206b001
    Sarah Sharp authored
    
    
    This patch adds a hex route string to each USB device.  The route string is used
    by the USB 3.0 host controller to send packets through the device tree.  USB 3.0
    hubs use this string to route packets to the correct port.  This is fundamental
    bus change from USB 2.0, where all packets were broadcast across the bus.
    
    Devices (including hubs) under a root port receive the route string 0x0.  Every
    four bits in the route string represent a port on a hub.  This length works
    because USB 3.0 hubs are limited to 15 ports, and USB 2.0 hubs (with potentially
    more ports) will never see packets with a route string.  A port number of 0
    means the packet is destined for that hub.
    
    For example, a peripheral device might have a route string of 0x00097.
    This means the device is connected to port 9 of the hub at depth 1.
    The hub at depth 1 is connected to port 7 of a hub at depth 0.
    The hub at depth 0 is connected to a root port.
    
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    7206b001