Message ID | 1690974709-20848-1-git-send-email-sanju.mehta@amd.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 583893a66d731f5da010a3fa38a0460e05f0149b |
Headers | show |
Series | [v3] thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards | expand |
On Wed, Aug 02, 2023 at 06:11:49AM -0500, Sanjay R Mehta wrote: > 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 <Sanath.S@amd.com> > Signed-off-by: Sanath S <Sanath.S@amd.com> > Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> Marked for stable and applied to thunderbolt.git/fixes, thanks!
diff --git a/drivers/thunderbolt/tmu.c b/drivers/thunderbolt/tmu.c index 1269f41..0dfd1e0 100644 --- a/drivers/thunderbolt/tmu.c +++ b/drivers/thunderbolt/tmu.c @@ -579,7 +579,9 @@ int tb_switch_tmu_disable(struct tb_switch *sw) * uni-directional mode and we don't want to change it's TMU * mode. */ - tb_switch_tmu_rate_write(sw, tmu_rates[TB_SWITCH_TMU_MODE_OFF]); + ret = tb_switch_tmu_rate_write(sw, tmu_rates[TB_SWITCH_TMU_MODE_OFF]); + if (ret) + return ret; tb_port_tmu_time_sync_disable(up); ret = tb_port_tmu_time_sync_disable(down);