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
..
2018-10-24 20:04:03 -05:00
2016-10-25 14:38:45 -04:00
2018-12-05 17:50:26 -05:00
2017-03-29 23:53:24 -04:00
2019-01-14 15:04:29 -05:00
2018-12-07 17:53:47 -05:00
2018-12-07 17:53:47 -05:00
2018-12-07 17:53:47 -05:00
2019-03-28 10:15:26 -05:00
2019-03-19 15:36:51 -05:00
2019-03-28 10:15:26 -05:00
2018-08-27 11:10:04 -05:00
2017-12-18 10:58:35 -05:00
2019-03-19 15:36:51 -05:00
2019-03-19 15:36:51 -05:00
2019-01-25 16:15:35 -05:00
2018-07-10 14:15:58 -05:00
2017-12-18 10:59:46 -05:00
2018-12-07 17:53:44 -05:00
2019-03-28 10:15:26 -05:00
2018-12-10 15:28:04 -05:00
2019-01-24 13:20:42 +01:00
2015-06-03 21:03:15 -04:00
2019-03-28 10:15:26 -05:00
2019-03-19 15:36:48 -05:00
2018-11-05 14:21:50 -05:00
2019-03-19 15:36:58 -05:00
2019-03-19 15:36:58 -05:00
2019-03-19 15:03:57 -05:00
2017-12-18 10:59:01 -05:00
2019-03-27 22:40:43 -05:00
2019-01-15 11:14:25 -05:00
2018-08-27 11:10:04 -05:00
2019-02-19 15:58:26 -05:00
2019-03-19 15:04:01 -05:00
2019-03-19 15:04:02 -05:00
2019-04-03 13:26:11 +10:00
2015-08-17 16:50:21 -04:00
2018-08-27 11:10:04 -05:00
2019-03-27 09:55:58 +01:00
2018-11-05 14:21:31 -05:00
2018-11-05 14:21:16 -05:00
2018-11-05 14:21:16 -05:00
2019-02-05 21:15:46 -05:00
2019-04-03 10:00:30 -05:00
2018-12-07 18:13:54 -05:00
2019-03-19 15:04:02 -05:00
2019-03-19 15:36:50 -05:00
2019-03-19 15:36:58 -05:00
2019-03-19 15:36:58 -05:00
2019-03-19 15:04:02 -05:00
2017-01-27 11:12:39 -05:00
2016-09-27 13:00:52 -04:00
2019-01-25 16:15:35 -05:00
2018-10-16 15:08:08 -05:00
2018-02-19 14:20:18 -05:00
2019-03-19 15:36:58 -05:00
2019-03-19 15:36:58 -05:00
2015-06-03 21:03:15 -04:00
2019-02-13 17:47:11 -05:00
2019-02-13 17:47:11 -05:00
2018-12-20 12:12:20 -05:00
2018-11-05 14:21:50 -05:00
2019-04-03 13:26:11 +10:00
2019-03-28 10:16:12 -05:00
2019-03-28 10:16:12 -05:00
2019-04-03 10:00:33 -05:00
2019-02-13 17:50:32 -05:00
2019-03-27 22:40:43 -05:00
2016-09-14 15:10:37 -04:00
2015-06-03 21:03:15 -04:00
2019-03-19 15:04:02 -05:00
2017-08-15 14:46:06 -04:00
2019-01-30 12:52:44 -05:00
2019-04-03 10:00:29 -05:00
2019-03-19 15:36:50 -05:00
2019-03-27 22:39:59 -05:00
2019-03-27 22:39:52 -05:00
2019-03-20 23:39:47 -05:00
2019-01-25 16:15:35 -05:00
2018-11-09 16:29:12 -05:00
2018-11-09 16:29:12 -05:00
2018-12-07 12:44:16 +01:00
2019-02-15 11:15:43 -05:00
2017-12-07 11:51:56 -05:00
2018-11-05 15:49:38 -05:00
2019-04-03 10:00:28 -05:00
2018-02-06 20:32:37 -05:00
2018-02-06 20:32:37 -05:00
2018-07-10 14:15:58 -05:00
2018-10-15 16:16:06 -05:00
2019-01-14 15:04:48 -05:00
2019-03-28 10:15:26 -05:00
2019-03-28 10:15:26 -05:00
2018-10-10 14:49:43 -05:00
2018-11-06 14:02:40 -05:00
2018-11-26 15:47:34 -05:00
2018-11-26 15:47:34 -05:00
2019-01-25 16:15:35 -05:00
2019-01-25 16:15:35 -05:00
2018-12-18 17:38:56 -05:00
2018-10-09 17:07:39 -05:00
2017-10-20 13:28:44 -04:00
2017-09-28 16:03:20 -04:00
2018-11-19 15:27:42 -05:00
2018-11-19 15:27:42 -05:00
2019-03-27 22:40:50 -05:00
2019-03-27 22:40:57 -05:00
2019-04-03 10:00:30 -05:00
2019-04-03 10:00:30 -05:00
2019-03-19 15:04:02 -05:00
2019-03-27 22:40:43 -05:00
2019-03-27 22:40:43 -05:00
2019-03-21 14:05:01 -05:00
2019-01-14 10:58:37 +01:00
2017-08-29 15:27:54 -04:00
2017-06-20 12:06:49 -04:00
2016-05-04 20:23:53 -04:00
2016-08-08 13:28:39 -04:00
2015-06-03 21:03:15 -04:00
2018-08-27 11:10:04 -05:00
2018-03-14 15:39:51 -05:00
2017-12-06 12:47:59 -05:00
2016-07-14 16:39:35 -04:00
2019-01-25 16:15:36 -05:00
2019-01-14 15:04:47 -05:00
2016-10-25 14:38:45 -04:00
2019-04-03 10:00:28 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:36 -05:00
2018-11-28 15:55:32 -05:00
2017-11-27 18:29:47 -05:00
2015-06-03 21:03:17 -04:00
2017-12-13 17:28:08 -05:00
2017-01-27 12:20:41 -05:00
2015-06-03 21:03:17 -04:00
2019-01-14 15:04:47 -05:00
2016-10-25 14:38:45 -04:00
2019-02-13 17:51:37 -05:00
2016-10-25 14:38:45 -04:00
2019-01-10 19:01:06 +02:00
2016-10-25 14:38:45 -04:00
2019-01-10 19:01:06 +02:00
2016-10-25 14:38:45 -04:00
2019-01-10 19:01:06 +02:00
2016-10-25 14:38:45 -04:00
2019-01-14 15:04:22 -05:00
2016-10-25 14:38:45 -04:00
2018-05-23 23:51:21 -05:00
2018-04-11 13:07:54 -05:00
2018-06-01 09:45:05 -05:00
2018-05-18 16:08:15 -05:00
2018-02-19 14:19:49 -05:00
2019-03-19 15:04:04 -05:00
2016-10-25 14:38:45 -04:00
2019-02-05 21:15:46 -05:00
2017-05-31 16:48:48 -04:00
2019-03-19 15:04:04 -05:00
2017-05-31 16:48:48 -04:00
2019-04-03 13:26:11 +10:00
2017-08-15 14:46:13 -04:00
2019-03-20 23:39:47 -05:00
2018-11-05 14:21:24 -05:00
2018-09-10 22:47:34 -05:00
2018-09-10 22:46:22 -05:00
2019-04-03 13:26:11 +10:00
2016-10-25 14:38:45 -04:00
2019-04-03 13:26:11 +10:00
2016-10-25 14:38:45 -04:00
2019-04-03 13:26:11 +10:00
2016-10-25 14:38:45 -04:00
2019-04-03 13:26:11 +10:00
2018-12-14 15:54:53 -05:00
2019-01-14 15:04:47 -05:00
2016-10-25 14:38:45 -04:00
2015-09-02 12:21:35 -04:00
2019-03-28 10:16:12 -05:00
2019-03-19 15:04:02 -05:00
2015-06-03 21:03:17 -04:00
2017-05-16 17:17:41 +02:00
2019-03-28 10:16:12 -05:00
2019-03-20 23:39:47 -05:00
2018-11-05 14:21:24 -05:00
2017-04-28 17:32:57 -04:00
2019-02-13 17:50:13 -05:00
2018-03-14 14:38:27 -05:00
2018-11-21 15:32:19 -05:00
2017-09-26 15:14:12 -04:00
2019-03-19 15:36:58 -05:00
2017-12-13 17:28:07 -05:00
2019-01-25 16:15:34 -05:00
2017-12-13 17:28:07 -05:00
2019-02-22 15:56:42 +10:00
2018-08-27 11:10:23 -05:00
2018-06-15 12:20:42 -05:00
2016-07-15 12:33:31 -04:00
2019-03-19 15:04:04 -05:00
2019-03-19 15:04:04 -05:00
2018-02-19 14:18:31 -05:00
2019-01-14 15:04:51 -05:00
2018-02-19 14:18:31 -05:00
2019-03-19 15:36:50 -05:00
2018-08-27 11:10:34 -05:00
2016-08-31 15:21:09 -04:00
2019-04-03 10:00:28 -05:00
2016-10-25 14:38:45 -04:00
2019-04-03 10:00:28 -05:00
2016-10-25 14:38:45 -04:00
2019-04-03 10:00:30 -05:00
2017-03-29 23:54:45 -04:00
2019-04-03 10:00:28 -05:00
2016-10-25 14:38:45 -04:00
2019-03-19 15:03:53 -05:00
2018-03-15 09:57:50 -05:00
2018-08-27 11:10:19 -05:00
2019-01-14 15:04:47 -05:00
2016-10-25 14:38:45 -04:00
2017-05-16 17:17:41 +02:00
2019-02-13 17:51:37 -05:00
2018-02-19 14:18:08 -05:00
2018-08-27 11:10:19 -05:00
2016-09-28 16:13:17 -04:00
2018-12-18 17:39:03 -05:00
2019-03-27 22:40:12 -05:00
2018-11-28 15:55:32 -05:00
2018-06-15 12:20:34 -05:00
2019-03-19 15:36:50 -05:00
2018-11-06 14:02:41 -05:00
2019-01-14 15:04:47 -05:00
2016-10-25 14:38:45 -04:00
2015-09-02 12:21:35 -04:00
2019-01-25 16:15:35 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:35 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:35 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:35 -05:00
2017-03-29 23:54:47 -04:00
2018-11-05 14:21:23 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:35 -05:00
2016-10-25 14:38:45 -04:00
2019-01-25 16:15:35 -05:00
2017-03-29 23:54:47 -04:00
2019-01-25 16:15:35 -05:00
2017-05-24 17:41:27 -04:00
2019-03-19 15:36:58 -05:00
2017-03-29 23:54:46 -04:00
2019-02-19 15:58:26 -05:00
2017-03-29 23:54:30 -04:00
2019-02-19 15:58:26 -05:00
2017-01-27 11:12:43 -05:00
2019-01-14 15:04:56 -05:00
2018-11-28 15:55:32 -05:00
2017-11-01 19:22:00 -04:00