From 175a4b2f030aa28bbb97bd54d91d6d2b6025a855 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 27 Aug 2023 11:07:44 +0200 Subject: [PATCH] 6.4-stable patches added patches: thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch --- queue-6.4/series | 1 + ...kering-issue-on-2nd-hot-plug-onwards.patch | 52 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 queue-6.4/thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch diff --git a/queue-6.4/series b/queue-6.4/series index 60e6f24927a..ac4bf3a33d9 100644 --- a/queue-6.4/series +++ b/queue-6.4/series @@ -105,3 +105,4 @@ of-dynamic-refactor-action-prints-to-not-use-pof-inside-devtree_lock.patch pinctrl-amd-mask-wake-bits-on-probe-again.patch media-vcodec-fix-potential-array-out-of-bounds-in-encoder-queue_setup.patch pci-acpiphp-use-pci_assign_unassigned_bridge_resources-only-for-non-root-bus.patch +thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch diff --git a/queue-6.4/thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch b/queue-6.4/thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch new file mode 100644 index 00000000000..0a47538e32a --- /dev/null +++ b/queue-6.4/thunderbolt-fix-thunderbolt-3-display-flickering-issue-on-2nd-hot-plug-onwards.patch @@ -0,0 +1,52 @@ +From 583893a66d731f5da010a3fa38a0460e05f0149b Mon Sep 17 00:00:00 2001 +From: Sanjay R Mehta +Date: Wed, 2 Aug 2023 06:11:49 -0500 +Subject: thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards + +From: Sanjay R Mehta + +commit 583893a66d731f5da010a3fa38a0460e05f0149b upstream. + +Previously, on unplug events, the TMU mode was disabled first +followed by the Time Synchronization Handshake, irrespective of +whether the tb_switch_tmu_rate_write() API was successful or not. + +However, this caused a problem with Thunderbolt 3 (TBT3) +devices, as the TSPacketInterval bits were always enabled by default, +leading the host router to assume that the device router's TMU was +already enabled and preventing it from initiating the Time +Synchronization Handshake. As a result, TBT3 monitors experienced +display flickering from the second hot plug onwards. + +To address this issue, we have modified the code to only disable the +Time Synchronization Handshake during TMU disable if the +tb_switch_tmu_rate_write() function is successful. This ensures that +the TBT3 devices function correctly and eliminates the display +flickering issue. + +Co-developed-by: Sanath S +Signed-off-by: Sanath S +Signed-off-by: Sanjay R Mehta +Cc: stable@vger.kernel.org +Signed-off-by: Mika Westerberg +[ USB4v2 introduced support for uni-directional TMU mode as part of + d49b4f043d63 ("thunderbolt: Add support for enhanced uni-directional TMU mode") + This is not a stable candidate commit, so adjust the code for backport. ] +Signed-off-by: Mario Limonciello +Signed-off-by: Greg Kroah-Hartman +--- + drivers/thunderbolt/tmu.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/thunderbolt/tmu.c ++++ b/drivers/thunderbolt/tmu.c +@@ -415,7 +415,8 @@ int tb_switch_tmu_disable(struct tb_swit + * uni-directional mode and we don't want to change it's TMU + * mode. + */ +- tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF); ++ ret = tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF); ++ return ret; + + tb_port_tmu_time_sync_disable(up); + ret = tb_port_tmu_time_sync_disable(down); -- 2.47.3