Skip to content

Commit

Permalink
drm/amd/display: use a more lax vblank enable policy for older ASICs
Browse files Browse the repository at this point in the history
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 <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-4-hamza.mahfooz@amd.com
  • Loading branch information
Hamza Mahfooz committed Aug 23, 2024
1 parent e45b671 commit 58a261b
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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,
Expand Down

0 comments on commit 58a261b

Please sign in to comment.