aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display
diff options
context:
space:
mode:
authorHamza Mahfooz <hamza.mahfooz@amd.com>2024-08-20 13:53:23 -0400
committerHamza Mahfooz <hamza.mahfooz@amd.com>2024-08-23 11:53:51 -0400
commite45b6716de4bf06b628a9f3559f7fc8dd5e94d58 (patch)
treed29b3f59e0557422b2dfda3bbc09e7997f0e9f13 /drivers/gpu/drm/amd/display
parent537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b (diff)
drm/amd/display: use a more lax vblank enable policy for DCN35+
Ideally, we want to enable immediate vblank disable, when possible and we should be able to do so on DCN35+, if PSR isn't supported by a given CRTC. Suggested-by: Leo Li <sunpeng.li@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240822161856.174600-3-hamza.mahfooz@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c7
1 files changed, 6 insertions, 1 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 032a0ea4b066..6323a097d0e2 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8246,7 +8246,8 @@ static void manage_dm_interrupts(struct amdgpu_device *adev,
if (amdgpu_ip_version(adev, DCE_HWIP, 0) <
IP_VERSION(3, 5, 0)) {
drm_crtc_vblank_on(&acrtc->base);
- } else {
+ } else if (acrtc_state->stream->link->psr_settings.psr_version <
+ DC_PSR_VERSION_UNSUPPORTED) {
timing = &acrtc_state->stream->timing;
/* at least 2 frames */
@@ -8258,6 +8259,10 @@ static void manage_dm_interrupts(struct amdgpu_device *adev,
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);
}
amdgpu_irq_get(