Message ID | 1689139946-18667-1-git-send-email-Sanju.Mehta@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [RESEND] thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards | expand |
On Wed, Jul 12, 2023 at 12:32:26AM -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: Sanjay R Mehta <sanju.mehta@amd.com> > Signed-off-by: Sanath S <Sanath.S@amd.com> > --- > drivers/thunderbolt/tmu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Why is this a RESEND? What changed? And the ordering of the signed-off-by is incorrect. thanks, greg k-h
On 7/12/2023 11:23 AM, Greg KH wrote: > On Wed, Jul 12, 2023 at 12:32:26AM -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: Sanjay R Mehta <sanju.mehta@amd.com> >> Signed-off-by: Sanath S <Sanath.S@amd.com> >> --- >> drivers/thunderbolt/tmu.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) > > Why is this a RESEND? What changed? > > And the ordering of the signed-off-by is incorrect. > Hi Greg, My Apologies, but am unable to comprehend what I should be doing here. Please guide me on this. > thanks, > > greg k-h
On Wed, Jul 12, 2023 at 11:33:58AM +0530, Sanjay R Mehta wrote: > > > On 7/12/2023 11:23 AM, Greg KH wrote: > > On Wed, Jul 12, 2023 at 12:32:26AM -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: Sanjay R Mehta <sanju.mehta@amd.com> > >> Signed-off-by: Sanath S <Sanath.S@amd.com> > >> --- > >> drivers/thunderbolt/tmu.c | 4 +++- > >> 1 file changed, 3 insertions(+), 1 deletion(-) > > > > Why is this a RESEND? What changed? > > > > And the ordering of the signed-off-by is incorrect. > > > Hi Greg, My Apologies, but am unable to comprehend what I should be > doing here. Please guide me on this. Please go and take the AMD kernel developer class/training/something and work with internal developers to get this right before resending it again. thanks, greg k-h
On 7/12/2023 10:12 PM, Greg KH wrote: > On Wed, Jul 12, 2023 at 11:33:58AM +0530, Sanjay R Mehta wrote: >> >> >> On 7/12/2023 11:23 AM, Greg KH wrote: >>> On Wed, Jul 12, 2023 at 12:32:26AM -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: Sanjay R Mehta <sanju.mehta@amd.com> >>>> Signed-off-by: Sanath S <Sanath.S@amd.com> >>>> --- >>>> drivers/thunderbolt/tmu.c | 4 +++- >>>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> Why is this a RESEND? What changed? >>> >>> And the ordering of the signed-off-by is incorrect. >>> >> Hi Greg, My Apologies, but am unable to comprehend what I should be >> doing here. Please guide me on this. > > Please go and take the AMD kernel developer class/training/something and > work with internal developers to get this right before resending it > again. > Thanks. I'll get this right and send the patch. > thanks, > > 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);