Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: fix DP link training issue with second 4K monitor

There is an issue observed when we hotplug a second DP
4K monitor to the system. Sometimes, the link training
fails for the second monitor after HPD interrupt
generation.

The issue happens when some queued or deferred transactions
are already present on the AUX channel when we initiate
a new transcation to (say) get DPCD or during link training.

We set AUX_IGNORE_HPD_DISCON bit in the AUX_CONTROL
register so that we can ignore any such deferred
transactions when a new AUX transaction is initiated.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

Arindam Nath and committed by
Alex Deucher
1a738347 fca09716

+1 -1
+1 -1
drivers/gpu/drm/radeon/radeon_dp_auxch.c
··· 105 105 106 106 tmp &= AUX_HPD_SEL(0x7); 107 107 tmp |= AUX_HPD_SEL(chan->rec.hpd); 108 - tmp |= AUX_EN | AUX_LS_READ_EN; 108 + tmp |= AUX_EN | AUX_LS_READ_EN | AUX_HPD_DISCON(0x1); 109 109 110 110 WREG32(AUX_CONTROL + aux_offset[instance], tmp); 111 111