1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/amd/display/amdgpu_dm
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
..
amdgpu_dm.c drm/amd/display: Rework vrr flip throttling for late vblank irq. 2019-04-03 10:00:33 -05:00
amdgpu_dm.h drm/amd/display: Add debugfs dpcd interface 2019-03-20 23:39:49 -05:00
amdgpu_dm_color.c drm/amd/display: program default output gamma 2019-03-27 22:41:25 -05:00
amdgpu_dm_crc.c drm/amd/display: Re-enable CRC capture following modeset 2019-01-28 11:44:03 -05:00
amdgpu_dm_debugfs.c drm/amd/display: Add debugfs dpcd interface 2019-03-20 23:39:49 -05:00
amdgpu_dm_debugfs.h drm/amd/display: Add support for hw_state logging via debugfs 2018-08-27 15:20:17 -05:00
amdgpu_dm_helpers.c drm/amd/display: Poll pending DOWN_REP before enabling the link 2019-03-19 15:04:02 -05:00
amdgpu_dm_irq.c drm/amd/display: Initial documentation for AMDgpu DC 2018-11-05 14:21:37 -05:00
amdgpu_dm_irq.h drm/amd/display: make amdgpu_dm_irq_handler static 2017-10-17 10:43:04 +10:00
amdgpu_dm_mst_types.c drm/amd/display: Respect aux return values 2019-03-19 15:04:02 -05:00
amdgpu_dm_mst_types.h drm/amd/display: Cleanup MST non-atomic code workaround 2018-11-07 18:20:49 -05:00
amdgpu_dm_pp_smu.c drm/amd/display: Clean up old pplib interface functions 2019-03-27 22:41:49 -05:00
amdgpu_dm_services.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
amdgpu_dm_trace.h drm/amd/display: Add tracing to dc 2018-12-05 17:49:49 -05:00
Makefile drm/amd/display: Moving powerplay functions to a separate class 2018-07-05 16:38:41 -05:00