drm: Fix timestamp docs for variable refresh properties.
authorMario Kleiner <mario.kleiner.de@gmail.com>
Thu, 18 Apr 2019 06:01:57 +0000 (08:01 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 7 May 2019 15:39:14 +0000 (10:39 -0500)
As discussed with Nicholas and Daniel Vetter (patchwork
link to discussion below), the VRR timestamping behaviour
produced utterly useless and bogus vblank/pageflip
timestamps. We have found a way to fix this and provide
sane behaviour.

As of Linux 5.2, the amdgpu driver will be able to
provide exactly the same vblank / pageflip timestamp
semantic in variable refresh rate mode as in standard
fixed refresh rate mode. This is achieved by deferring
core vblank handling (drm_crtc_handle_vblank()) until
the end of front porch, and also defer the sending of
pageflip completion events until end of front porch,
when we can safely compute correct pageflip/vblank

The same approach will be possible for other VRR
capable kms drivers, so we can actually have sane
and useful timestamps in VRR mode.

This patch removes the section of the docs that
describes the broken timestamp behaviour present
in Linux 5.0/5.1.

Fixes: ab7a664f7a2d ("drm: Document variable refresh properties")
Link: https://patchwork.freedesktop.org/patch/285333/
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190418060157.18968-1-mario.kleiner.de@gmail.com
Cc: stable@vger.kernel.org

index 2355124849db9ecb0f8ceb5118c13ea729dd6215..b34c3d38bf15cd104d7349812e254039d047b2a0 100644 (file)
@@ -1416,12 +1416,6 @@ EXPORT_SYMBOL(drm_mode_create_scaling_mode_property);
  *     The driver may place further restrictions within these minimum
  *     and maximum bounds.
- *
- *     The semantics for the vertical blank timestamp differ when
- *     variable refresh rate is active. The vertical blank timestamp
- *     is defined to be an estimate using the current mode's fixed
- *     refresh rate timings. The semantics for the page-flip event
- *     timestamp remain the same.