• Sanjay R Mehta's avatar
    thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards · 583893a6
    Sanjay R Mehta authored
    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: default avatarSanath S <Sanath.S@amd.com>
    Signed-off-by: default avatarSanath S <Sanath.S@amd.com>
    Signed-off-by: default avatarSanjay R Mehta <sanju.mehta@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    583893a6
tmu.c 24.9 KB