diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index 5d9a34601a1ac54d3a64d57ee39128fae257e401..3d4e6b8b8fb106003a44507e3741929c115f8552 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -229,7 +229,7 @@ int amdgpu_amdkfd_resume_iommu(struct amdgpu_device *adev)
 {
 	int r = 0;
 
-	if (adev->kfd.dev)
+	if (adev->kfd.dev && !adev->in_s0ix)
 		r = kgd2kfd_resume_iommu(adev->kfd.dev);
 
 	return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 9ef83f3ab3a7e85c184b713a5e6252dfe5c85140..adf4bae7c856ade7c7a1f31973213143b9097ec7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4148,6 +4148,9 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
 
 	amdgpu_device_ip_suspend_phase1(adev);
 
+	DRM_INFO("calling suspend, before KFD check, in_s0ix: %d, in_runpm:%d\n",
+		 adev->in_s0ix, adev->in_runpm);
+	//if (adev->asic_type == CHIP_RAVEN || !adev->in_s0ix)
 	if (!adev->in_s0ix)
 		amdgpu_amdkfd_suspend(adev, adev->in_runpm);