aboutsummaryrefslogtreecommitdiffstats
path: root/queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch
diff options
context:
space:
mode:
Diffstat (limited to 'queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch')
-rw-r--r--queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch b/queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch
new file mode 100644
index 0000000000..9dd8a7af5a
--- /dev/null
+++ b/queue-6.8/thunderbolt-introduce-tb_path_deactivate_hop.patch
@@ -0,0 +1,53 @@
+From b35c1d7b11da8c08b14147bbe87c2c92f7a83f8b Mon Sep 17 00:00:00 2001
+From: Sanath S <Sanath.S@amd.com>
+Date: Sat, 13 Jan 2024 11:42:23 +0200
+Subject: thunderbolt: Introduce tb_path_deactivate_hop()
+
+From: Sanath S <Sanath.S@amd.com>
+
+commit b35c1d7b11da8c08b14147bbe87c2c92f7a83f8b upstream.
+
+This function can be used to clear path config space of an adapter. Make
+it available for other files in this driver.
+
+Signed-off-by: Sanath S <Sanath.S@amd.com>
+Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Cc: Mario Limonciello <mario.limonciello@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/thunderbolt/path.c | 13 +++++++++++++
+ drivers/thunderbolt/tb.h | 1 +
+ 2 files changed, 14 insertions(+)
+
+--- a/drivers/thunderbolt/path.c
++++ b/drivers/thunderbolt/path.c
+@@ -446,6 +446,19 @@ static int __tb_path_deactivate_hop(stru
+ return -ETIMEDOUT;
+ }
+
++/**
++ * tb_path_deactivate_hop() - Deactivate one path in path config space
++ * @port: Lane or protocol adapter
++ * @hop_index: HopID of the path to be cleared
++ *
++ * This deactivates or clears a single path config space entry at
++ * @hop_index. Returns %0 in success and negative errno otherwise.
++ */
++int tb_path_deactivate_hop(struct tb_port *port, int hop_index)
++{
++ return __tb_path_deactivate_hop(port, hop_index, true);
++}
++
+ static void __tb_path_deactivate_hops(struct tb_path *path, int first_hop)
+ {
+ int i, res;
+--- a/drivers/thunderbolt/tb.h
++++ b/drivers/thunderbolt/tb.h
+@@ -1154,6 +1154,7 @@ struct tb_path *tb_path_alloc(struct tb
+ void tb_path_free(struct tb_path *path);
+ int tb_path_activate(struct tb_path *path);
+ void tb_path_deactivate(struct tb_path *path);
++int tb_path_deactivate_hop(struct tb_port *port, int hop_index);
+ bool tb_path_is_invalid(struct tb_path *path);
+ bool tb_path_port_on_path(const struct tb_path *path,
+ const struct tb_port *port);