summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>2020-05-06 15:47:54 -0400
committerAlex Deucher <alexander.deucher@amd.com>2020-05-07 16:24:37 -0400
commitb931e199f16e1e29cb1728e8aa9d27b9f8978cb1 (patch)
tree9996d7861f44259c6369135f6e3c70b9e1cc0b62 /init
parent624e8c8703b5236e000f447d69d183f2c7c28355 (diff)
downloadlinux-stable-b931e199f16e1e29cb1728e8aa9d27b9f8978cb1.tar.gz
linux-stable-b931e199f16e1e29cb1728e8aa9d27b9f8978cb1.tar.bz2
linux-stable-b931e199f16e1e29cb1728e8aa9d27b9f8978cb1.zip
drm/amd/display: Fix vblank and pageflip event handling for FreeSync
[Why] We're sending the drm vblank event a frame too early in the case where the pageflip happens close to VUPDATE and ends up blocking the signal. The implementation in DM was previously correct *before* we started sending vblank events from VSTARTUP unconditionally to handle cases where HUBP was off, OTG was ON and userspace was still requesting some DRM planes enabled. As part of that patch series we dropped VUPDATE since it was deemed close enough to VSTARTUP, but there's a key difference betweeen VSTARTUP and VUPDATE - the VUPDATE signal can be blocked if we're holding the pipe lock. There was a fix recently to revert the unconditional behavior for the DCN VSTARTUP vblank event since it was sending the pageflip event on the wrong frame - once again, due to blocking VUPDATE and having the address start scanning out two frames later. The problem with this fix is it didn't update the logic that calls drm_crtc_handle_vblank(), so the timestamps are totally bogus now. [How] Essentially reverts most of the original VSTARTUP series but retains the behavior to send back events when active planes == 0. Some refactoring/cleanup was done to not have duplicated code in both the handlers. Fixes: 16f17eda8bad ("drm/amd/display: Send vblank and user events at vsartup for DCN") Fixes: 3a2ce8d66a4b ("drm/amd/display: Disable VUpdate interrupt for DCN hardware") Fixes: 2b5aed9ac3f7 ("drm/amd/display: Fix pageflip event race condition for DCN.") Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions