summaryrefslogtreecommitdiffstats
path: root/drivers/thunderbolt/tb.c
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2022-10-07 16:49:01 +0200
committerMika Westerberg <mika.westerberg@linux.intel.com>2023-06-09 11:07:23 +0200
commit4e7b4955cba13bb8b8f63400fbd28081f11179a7 (patch)
tree8b8e0b15f537336d2138c2e30d817526f2f1353a /drivers/thunderbolt/tb.c
parentthunderbolt: Move TMU configuration to tb_enable_tmu() (diff)
downloadlinux-4e7b4955cba13bb8b8f63400fbd28081f11179a7.tar.xz
linux-4e7b4955cba13bb8b8f63400fbd28081f11179a7.zip
thunderbolt: Move tb_enable_tmu() close to other TMU functions
This makes the code easier to follow. No functional changes. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to '')
-rw-r--r--drivers/thunderbolt/tb.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index 0630b877136e..41c353f462e7 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -272,6 +272,35 @@ static void tb_increase_tmu_accuracy(struct tb_tunnel *tunnel)
device_for_each_child(&sw->dev, NULL, tb_increase_switch_tmu_accuracy);
}
+static int tb_enable_tmu(struct tb_switch *sw)
+{
+ int ret;
+
+ /*
+ * If CL1 is enabled then we need to configure the TMU accuracy
+ * level to normal. Otherwise we keep the TMU running at the
+ * highest accuracy.
+ */
+ if (tb_switch_is_clx_enabled(sw, TB_CL1))
+ tb_switch_tmu_configure(sw, TB_SWITCH_TMU_RATE_NORMAL, true);
+ else
+ tb_switch_tmu_configure(sw, TB_SWITCH_TMU_RATE_HIFI, false);
+
+ /* If it is already enabled in correct mode, don't touch it */
+ if (tb_switch_tmu_is_enabled(sw))
+ return 0;
+
+ ret = tb_switch_tmu_disable(sw);
+ if (ret)
+ return ret;
+
+ ret = tb_switch_tmu_post_time(sw);
+ if (ret)
+ return ret;
+
+ return tb_switch_tmu_enable(sw);
+}
+
static void tb_switch_discover_tunnels(struct tb_switch *sw,
struct list_head *list,
bool alloc_hopids)
@@ -383,35 +412,6 @@ static void tb_scan_xdomain(struct tb_port *port)
}
}
-static int tb_enable_tmu(struct tb_switch *sw)
-{
- int ret;
-
- /*
- * If CL1 is enabled then we need to configure the TMU accuracy
- * level to normal. Otherwise we keep the TMU running at the
- * highest accuracy.
- */
- if (tb_switch_is_clx_enabled(sw, TB_CL1))
- tb_switch_tmu_configure(sw, TB_SWITCH_TMU_RATE_NORMAL, true);
- else
- tb_switch_tmu_configure(sw, TB_SWITCH_TMU_RATE_HIFI, false);
-
- /* If it is already enabled in correct mode, don't touch it */
- if (tb_switch_tmu_is_enabled(sw))
- return 0;
-
- ret = tb_switch_tmu_disable(sw);
- if (ret)
- return ret;
-
- ret = tb_switch_tmu_post_time(sw);
- if (ret)
- return ret;
-
- return tb_switch_tmu_enable(sw);
-}
-
/**
* tb_find_unused_port() - return the first inactive port on @sw
* @sw: Switch to find the port on