linux/drivers/gpu/drm/amd
Mario Kleiner fdd1fe57c0 drm/amd/display: Rework vrr flip throttling for late vblank irq.
For throttling to work correctly, we always need a baseline vblank
count last_flip_vblank that increments at start of front-porch.

This is the case for drm_crtc_vblank_count() in non-VRR mode, where
the vblank irq fires at start of front-porch and triggers DRM core
vblank handling, but it is no longer the case in VRR mode, where
core vblank handling is done later, after end of front-porch.

Therefore drm_crtc_vblank_count() is no longer useful for this.
We also can't use drm_crtc_accurate_vblank_count(), as that would
screw up vblank timestamps in VRR mode when called in front-porch.

To solve this, use the cooked hardware vblank counter returned by
amdgpu_get_vblank_counter_kms() instead, as that one is cooked to
always increment at start of front-porch, independent of when
vblank related irq's fire.

This patch allows vblank irq handling to happen anywhere within
vblank of even after it, without a negative impact on flip
throttling, so followup patches can shift the vblank core
handling trigger point wherever they need it.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-04-03 10:00:33 -05:00
..
acp
amdgpu drm/amd/display: Rework vrr flip throttling for late vblank irq. 2019-04-03 10:00:33 -05:00
amdkfd Revert "drm/amdkfd: avoid HMM change cause circular lock" 2019-03-28 10:15:49 -05:00
display drm/amd/display: Rework vrr flip throttling for late vblank irq. 2019-04-03 10:00:33 -05:00
include drm/amdgpu: remove chash 2019-03-19 15:36:58 -05:00
powerplay drm/amdgpu: Allow switching to CUSTOM profile on Vega20 2019-04-03 10:00:31 -05:00