OSDN Git Service

usb: assign usb3 external hub port peers
authorDan Williams <dan.j.williams@intel.com>
Wed, 21 May 2014 01:08:33 +0000 (18:08 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 May 2014 23:38:52 +0000 (16:38 -0700)
commit8b1ba80c59fb3e77f9e1761480617d5ea9ee159c
tree120b54fcb3cf3d97d6798bd41d19b2b725554bab
parentd8521afe35862f4fbe3ccd6ca37897c0a304edf3
usb: assign usb3 external hub port peers

Given that root hub port peers are already established, external hub peer
ports can be determined by traversing the device topology:

1/ ascend to the parent hub and find the upstream port_dev

2/ walk ->peer to find the peer port

3/ descend to the peer hub via ->child

4/ find the port with the matching port id

Note that this assumes the port labeling scheme required by the
specification [1].

[1]: usb3 3.1 section 10.3.3

Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/port.c