7f2d5f7bc529114c2e67520427be6ebac694e78f |
|
20-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Fix header declaration of tb_find_cap tb_find_cap in cap.c takes an enum tb_cap and not an u32. Fix the declaration in tb.h. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
cd22e73bdf5eff7e68a0f8bdfbce123ad43651f6 |
|
12-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Read port configuration from eeprom. All Thunderbolt switches (except the root switch) contain a drom which contains information about the device. Right now we only read the UID. Add code to read and parse this drom. For now we are only interested in which ports are disabled and which ports are "dual link ports" (a physical thunderbolt port/socket contains two such ports). Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
23dd5bb49d986f37977ed80dd2ca65040ead4392 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Add suspend/hibernate support We use _noirq since we have to restore the pci tunnels before the pci core wakes the tunneled devices. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
c90553b3c4ac2389a71a5c012b6e5bb1160d48a7 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Read switch uid from EEPROM Add eeprom access code and read the uid during switch initialization. The UID will be used to check device identity after suspend. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
3364f0c12795713e89ae1209081c60d64bfb4ca1 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Add support for simple pci tunnels A pci downstream and pci upstream port can be connected through a tunnel. To establish the tunnel we have to setup two unidirectional paths between the two ports. Right now we only support paths with two hops (i.e. no chaining) and at most one pci device per thunderbolt device. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
520b670216a15fb949e6ec6a1af9b5dd55d219c7 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Add path setup code. A thunderbolt path is a unidirectional channel between two thunderbolt ports. Two such paths are needed to establish a pci tunnel. This patch introduces struct tb_path as well as a set of tb_path_* methods which are used to activate & deactivate paths. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
053596d9e26c86352c4b2b372f43f2746b97de45 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Handle hotplug events We receive a plug event callback whenever a thunderbolt device is added or removed. This patch fills in the tb_handle_hotplug method and starts reacting to these events by adding/removing switches from the hierarchy. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
9da672a42878c58af5c50d7389dbae17bea9df38 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Scan for downstream switches Add utility methods tb_port_state and tb_wait_for_port. Add tb_scan_switch which recursively checks for downstream switches. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
ca389f716f6140d5349583a716bc629d63b06b1f |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Enable plug events Thunderbolt switches have a plug events capability. This patch adds the tb_plug_events_active method and uses it to activate plug events during switch allocation. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
e2b8785ed312dad3a18279a3e88435fc269658c1 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Add thunderbolt capability handling Thunderbolt config areas contain capability lists similar to those found on pci devices. This patch introduces a tb_find_cap utility method to search for capabilities. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
a25c8b2fc9636aaf29d9d9d89f92cdfd27a2a23d |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Initialize root switch and ports This patch adds the structures tb_switch and tb_port as well as code to initialize the root switch. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
d6cc51cd1a4aed1d9e2dd66d643d729acb4be560 |
|
03-Jun-2014 |
Andreas Noever <andreas.noever@gmail.com> |
thunderbolt: Setup control channel Add struct tb which will contain our view of the thunderbolt bus. For now it just contains a pointer to the control channel and a workqueue for hotplug events. Add thunderbolt_alloc_and_start() and thunderbolt_shutdown_and_free() which are responsible for setup and teardown of struct tb. Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|