From: Leo Li <[email protected]>

[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: 514fd3e75d90 ("drm/amd/display: Determine IPS mode by ASIC and PMFW 
versions")
Signed-off-by: Leo Li <[email protected]>
Reviewed-by: Roman Li <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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 3bf2db3b3059..58973bfe319b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -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) {
-- 
2.46.0

Reply via email to