Good point. Looks we need to disable BACO entry/exit together, not limited to runtime PM. I will drop this revert and provide a new patch accordingly. Regards, Guchun -----Original Message----- From: Lazar, Lijo <Lijo.Lazar@xxxxxxx> Sent: Wednesday, September 7, 2022 1:58 PM To: Chen, Guchun <Guchun.Chen@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Quan, Evan <Evan.Quan@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx> Subject: Re: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk on several sienna cichlid cards" 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.chen@xxxxxxx> > --- > 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"); > } >