drm/amd/display: Enable idle workqueue for more IPS modes
authorLeo Li <sunpeng.li@amd.com>
Wed, 11 Sep 2024 21:27:08 +0000 (17:27 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 1 Oct 2024 21:34:12 +0000 (17:34 -0400)
[Why]

There are more IPS modes other than DMUB_IPS_ENABLE that enables IPS. We
need to enable the hotplug detect idle workqueue for those modes as
well.

[How]

Modify the if condition to initialize the workqueue in all IPS modes
except for DMUB_IPS_DISABLE_ALL.

Fixes: 65444581a4ae ("drm/amd/display: Determine IPS mode by ASIC and PMFW versions")
Signed-off-by: Leo Li <sunpeng.li@amd.com>
Reviewed-by: Roman Li <roman.li@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 7a826f20c38a2594fe45c6bf13396f34dbcbab9c..5109146ef2bab59ec2d630ca35b299f80b6f2f3f 100644 (file)
@@ -2026,7 +2026,8 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
                        DRM_ERROR("amdgpu: failed to initialize vblank_workqueue.\n");
        }
 
-       if (adev->dm.dc->caps.ips_support && adev->dm.dc->config.disable_ips == DMUB_IPS_ENABLE)
+       if (adev->dm.dc->caps.ips_support &&
+           adev->dm.dc->config.disable_ips != DMUB_IPS_DISABLE_ALL)
                adev->dm.idle_workqueue = idle_create_workqueue(adev);
 
        if (adev->dm.dc->caps.max_links > 0 && adev->family >= AMDGPU_FAMILY_RV) {