Message ID | 1689060470-88947-1-git-send-email-Sanju.Mehta@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards | expand |
On Tue, Jul 11, 2023 at 02:27:50AM -0500, Sanjay R Mehta wrote: > From: Sanjay R Mehta <sanju.mehta@amd.com> > > 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. > > Signed-off-by: Sanath S <Sanath.S@amd.com> > Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> If "Sanath S" authored this patch, then the From: line is incorrect. If they did not, then the ordering here is incorrect. Either way, this isn't correct at all, please fix. thanks, greg k-h
On 7/11/2023 7:36 PM, Greg KH wrote: > On Tue, Jul 11, 2023 at 02:27:50AM -0500, Sanjay R Mehta wrote: >> From: Sanjay R Mehta <sanju.mehta@amd.com> >> >> 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. >> >> Signed-off-by: Sanath S <Sanath.S@amd.com> >> Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> > > If "Sanath S" authored this patch, then the From: line is incorrect. > > If they did not, then the ordering here is incorrect. > > Either way, this isn't correct at all, please fix. > > thanks, > Sure Greg. my bad. I'll fix and resend this patch. > greg k-h
diff --git a/drivers/thunderbolt/tmu.c b/drivers/thunderbolt/tmu.c index 626aca3..49146f9 100644 --- a/drivers/thunderbolt/tmu.c +++ b/drivers/thunderbolt/tmu.c @@ -415,7 +415,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, TB_SWITCH_TMU_RATE_OFF); + ret = tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF); + if (ret) + return ret; tb_port_tmu_time_sync_disable(up); ret = tb_port_tmu_time_sync_disable(down);