]> git.baikalelectronics.ru Git - kernel.git/commit
drm/radeon: Slightly more robust flip completion handling for < DCE-4
authorMario Kleiner <mario.kleiner.de@gmail.com>
Sat, 17 Sep 2016 12:25:38 +0000 (14:25 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 4 Oct 2016 15:15:58 +0000 (11:15 -0400)
commitf88dba5620aa3e5b65b1d1f829548151dbf0c968
treeb661a7a346cf474267b2ff442ccd04736c8d9be4
parentb76f41dde38eee1519b5d5156bca2af9c21f2989
drm/radeon: Slightly more robust flip completion handling for < DCE-4

Pre DCE4 hardware doesn't have (reliable) pageflip completion
irqs, therefore we have to use the old polling method for flip
completion handling in vblank irq.

As vblank irqs fire a bit before start of vblank (when the
linebuffer fifo read position reaches end of scanout), we
have some fudge for flip completion handling in the last
lines of active scanout. Old code assumed the threshold to
be 99% of active scanout height, a ballpark estimate which
worked ok. Since we know since a while how to calculate the
actual threshold from linebuffer size, lets make use of it
to get a more accurate threshold.

This completion path is still prone to some races in corner
cases, especially on pre-AVIVO hardware, so document them
a bit better in the code comments.

Acked-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_display.c