On Wed, Apr 27, 2022 at 7:42 AM Quan, Evan <Evan.Quan@xxxxxxx> wrote: > > [AMD Official Use Only - General] > > > > > -----Original Message----- > > From: Chen, Guchun <Guchun.Chen@xxxxxxx> > > Sent: Wednesday, April 27, 2022 6:27 PM > > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Koenig, Christian > > <Christian.Koenig@xxxxxxx>; Zhang, Hawking <Hawking.Zhang@xxxxxxx>; > > Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Lazar, Lijo > > <Lijo.Lazar@xxxxxxx>; Quan, Evan <Evan.Quan@xxxxxxx> > > Cc: Chen, Guchun <Guchun.Chen@xxxxxxx> > > Subject: [PATCH] drm/amdgpu: disable runtime pm on several sienna cichlid > > cards(v2) > > > > Disable runtime power management on several sienna cichlid > > cards, otherwise SMU will possibly fail to be resumed from > > runtime suspend. Will drop this after a clean solution between > > kernel driver and SMU FW is available. > > > > amdgpu 0000:63:00.0: amdgpu: GECC is enabled > > amdgpu 0000:63:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is > > not available > > amdgpu 0000:63:00.0: amdgpu: SMU is resuming... > > amdgpu 0000:63:00.0: amdgpu: SMU: I'm not done with your command: > > SMN_C2PMSG_66:0x0000000E SMN_C2PMSG_82:0x00000080 > > amdgpu 0000:63:00.0: amdgpu: Failed to SetDriverDramAddr! > > amdgpu 0000:63:00.0: amdgpu: Failed to setup smc hw! > > [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP > > block <smu> failed -62 > > amdgpu 0000:63:00.0: amdgpu: amdgpu_device_ip_resume failed (-62) > > > > v2: seperate to a function. > > > > Signed-off-by: Guchun Chen <guchun.chen@xxxxxxx> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > > index 262938f0dfdb..1bf8ff71b6b5 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->runpm = false; > > +} > > + > [Quan, Evan] Better to move this to sienna_cichlid_check_bxco_support(). As long as smu_baco->platform_support is set as false there, > the runpm will be disabled accordingly I think. Good point. We probably want to disable BACO entirely or enable the workaround because BACO could also be used for a GPU reset in some cases. Then only disable runtime pm if BACO will be used. BOCO should still work fine for example. Alex > > Either way the patch is reviewed-by: Evan Quan <evan.quan@xxxxxxx> > > BR > Evan > > void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev) > > { > > struct amdgpu_gpu_instance *gpu_instance; > > @@ -180,6 +191,9 @@ int amdgpu_driver_load_kms(struct amdgpu_device > > *adev, unsigned long flags) > > */ > > if (adev->is_fw_fb) > > adev->runpm = false; > > + > > + amdgpu_runtime_pm_quirk(adev); > > + > > if (adev->runpm) > > dev_info(adev->dev, "Using BACO for runtime > > pm\n"); > > } > > -- > > 2.17.1