Message ID | 1689185779-25648-1-git-send-email-sanju.mehta@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [V2] thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards | expand |
On Wed, Jul 12, 2023 at 01:16:19PM -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> Looks good. I suppose you want this in -stable too, right?
On 7/31/2023 4:45 PM, Mika Westerberg wrote: > On Wed, Jul 12, 2023 at 01:16:19PM -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> > > Looks good. > > I suppose you want this in -stable too, right? Thanks. Yes Mika. - Sanjay
On Mon, Jul 31, 2023 at 06:37:16PM +0530, Sanjay R Mehta wrote: > > > On 7/31/2023 4:45 PM, Mika Westerberg wrote: > > On Wed, Jul 12, 2023 at 01:16:19PM -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> > > > > Looks good. > > > > I suppose you want this in -stable too, right? > > Thanks. Yes Mika. Hm, I get: Applying: thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards error: patch failed: drivers/thunderbolt/tmu.c:415 error: drivers/thunderbolt/tmu.c: patch does not apply Patch failed at 0001 thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards Is this based on v6.5-rcX or something else?
On 7/31/2023 8:24 PM, Mika Westerberg wrote: > On Mon, Jul 31, 2023 at 06:37:16PM +0530, Sanjay R Mehta wrote: >> >> >> On 7/31/2023 4:45 PM, Mika Westerberg wrote: >>> On Wed, Jul 12, 2023 at 01:16:19PM -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> >>> >>> Looks good. >>> >>> I suppose you want this in -stable too, right? >> >> Thanks. Yes Mika. > > Hm, I get: > > Applying: thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards > error: patch failed: drivers/thunderbolt/tmu.c:415 > error: drivers/thunderbolt/tmu.c: patch does not apply > Patch failed at 0001 thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards > > Is this based on v6.5-rcX or something else? Hi Mika, This patch was tested a month ago and built on top of 6.4.. I'll resend based on latest. Apologies for the inconvenience.. - Sanjay
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);