On 9/7/2022 10:23 AM, Guchun Chen wrote:
This reverts commit e2994d23d8afa2fb465fdb8cf544b736f67ab8ba.

Frequent BACO enter/exit will cause EMI failure, so disable runtime PM
on these server SKUs.


Apart from this, any BACO entry/exit in quick succession could cause the same failure. If BACO is used for reset in these SKUs, that also may not work.

Thanks,
Lijo

Signed-off-by: Guchun Chen <guchun.c...@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 13 +++++++++++++
  1 file changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 1369c25448dc..4f6473faaf24 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -43,6 +43,17 @@
  #include "amdgpu_display.h"
  #include "amdgpu_ras.h"
+static void amdgpu_runtime_pm_quirk(struct amdgpu_device *adev)
+{
+       /*
+        * Add below quirk on several sienna_cichlid cards to disable
+        * runtime pm to fix EMI failures.
+        */
+       if (((adev->pdev->device == 0x73A1) && (adev->pdev->revision == 0x00)) 
||
+           ((adev->pdev->device == 0x73BF) && (adev->pdev->revision == 0xCF)))
+               adev->pm.rpm_mode = AMDGPU_RUNPM_NONE;
+}
+
  void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)
  {
        struct amdgpu_gpu_instance *gpu_instance;
@@ -176,6 +187,8 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, 
unsigned long flags)
                        break;
                }
+ amdgpu_runtime_pm_quirk(adev);
+
                if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO)
                        dev_info(adev->dev, "Using BACO for runtime pm\n");
        }

Reply via email to