]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
Revert "drm/amdgpu/display: set vblank_disable_immediate for DC"
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 20 Jun 2022 22:29:39 +0000 (18:29 -0400)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 26 Aug 2022 08:54:08 +0000 (10:54 +0200)
BugLink: https://bugs.launchpad.net/bugs/1986728
commit a775e4e4941bf2f326aa36c58f67bd6c96cac717 upstream.

This reverts commit 92020e81ddbeac351ea4a19bcf01743f32b9c800.

This causes stuttering and timeouts with DMCUB for some users
so revert it until we understand why and safely enable it
to save power.

Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1887
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 4f3c62adccbdef85d46b979e2db56ec3cf116dd0..cc2e0c9cfe0a132f68f3d93c785517e25bd6537d 100644 (file)
@@ -333,6 +333,7 @@ int amdgpu_irq_init(struct amdgpu_device *adev)
        if (!amdgpu_device_has_dc_support(adev)) {
                if (!adev->enable_virtual_display)
                        /* Disable vblank IRQs aggressively for power-saving */
+                       /* XXX: can this be enabled for DC? */
                        adev_to_drm(adev)->vblank_disable_immediate = true;
 
                r = drm_vblank_init(adev_to_drm(adev), adev->mode_info.num_crtc);
index 33c00b8ad2d699929d692f323f6d79485ec7f303..11e85e5a490162fc69b53a1e998ec9e6d63e7331 100644 (file)
@@ -4076,9 +4076,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
        }
 #endif
 
-       /* Disable vblank IRQs aggressively for power-saving. */
-       adev_to_drm(adev)->vblank_disable_immediate = true;
-
        /* loops over all connectors on the board */
        for (i = 0; i < link_cnt; i++) {
                struct dc_link *link = NULL;