On Tue, Jul 12, 2022 at 11:18 PM Guchun Chen <guchun.chen@xxxxxxx> wrote: > > SMU is always alive, so it's fine to skip SMU FW reloading > when runpm resumed from BACO, this can avoid some race issues > when resuming SMU FW. > > v2: Exclude boco case if an ASIC supports both boco and baco > > Suggested-by: Evan Quan <evan.quan@xxxxxxx> > Signed-off-by: Guchun Chen <guchun.chen@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > index e9411c28d88b..de59dc051340 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > @@ -2348,6 +2348,14 @@ static int psp_load_smu_fw(struct psp_context *psp) > &adev->firmware.ucode[AMDGPU_UCODE_ID_SMC]; > struct amdgpu_ras *ras = psp->ras_context.ras; > > + /* Skip SMU FW reloading in case of using BACO for runpm only, > + * as SMU is always alive. > + */ > + if (adev->in_runpm && > + !amdgpu_device_supports_boco(adev_to_drm(adev)) && > + amdgpu_device_supports_baco(adev_to_drm(adev))) I think this would be better as: if (adev->in_runpm && (adev->pm.rpm_mode != AMDGPU_RUNPM_BOCO)) or something like that. Alex > + return 0; > + > if (!ucode->fw || amdgpu_sriov_vf(psp->adev)) > return 0; > > -- > 2.17.1 >