aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamza Mahfooz <[email protected]>2024-08-22 11:58:22 -0400
committerHamza Mahfooz <[email protected]>2024-08-23 11:53:51 -0400
commit58a261bfc96763a851cb48b203ed57da37e157b8 (patch)
tree28e80e74f1597985404bd244ff47d95ad6bf47a9
parente45b6716de4bf06b628a9f3559f7fc8dd5e94d58 (diff)
drm/amd/display: use a more lax vblank enable policy for older ASICs
Ideally, we want to drop the legacy vblank enable for older ASICs. This should be possible now, since we can now specify how many frames we need to wait before disabling vblanking instead of being forced to either choose between no delay (which can still be buggy) and drm_vblank_offdelay (which is much longer by default than is required on AMD hardware). Suggested-by: Leo Li <[email protected]> Reviewed-by: Harry Wentland <[email protected]> Signed-off-by: Hamza Mahfooz <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 6323a097d0e2..91490d5d106b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8244,10 +8244,9 @@ static void manage_dm_interrupts(struct amdgpu_device *adev,
if (acrtc_state) {
if (amdgpu_ip_version(adev, DCE_HWIP, 0) <
- IP_VERSION(3, 5, 0)) {
- drm_crtc_vblank_on(&acrtc->base);
- } else if (acrtc_state->stream->link->psr_settings.psr_version <
- DC_PSR_VERSION_UNSUPPORTED) {
+ IP_VERSION(3, 5, 0) ||
+ acrtc_state->stream->link->psr_settings.psr_version <
+ DC_PSR_VERSION_UNSUPPORTED) {
timing = &acrtc_state->stream->timing;
/* at least 2 frames */
@@ -8257,14 +8256,13 @@ static void manage_dm_interrupts(struct amdgpu_device *adev,
timing->pix_clk_100hz);
config.offdelay_ms = offdelay ?: 30;
- drm_crtc_vblank_on_config(&acrtc->base,
- &config);
} else {
config.disable_immediate = true;
- drm_crtc_vblank_on_config(&acrtc->base,
- &config);
}
+ drm_crtc_vblank_on_config(&acrtc->base,
+ &config);
+
amdgpu_irq_get(
adev,
&adev->pageflip_irq,