[Public] > -----Original Message----- > From: Huang, Tim <Tim.Huang@xxxxxxx> > Sent: Friday, January 20, 2023 10:29 > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Zhang, Yifan > <Yifan1.Zhang@xxxxxxx>; Du, Xiaojian <Xiaojian.Du@xxxxxxx>; Ma, Li > <Li.Ma@xxxxxxx>; Limonciello, Mario <Mario.Limonciello@xxxxxxx>; > Huang, Tim <Tim.Huang@xxxxxxx> > Subject: [PATCH 1/2] drm/amdgpu: skip psp suspend for IMU enabled ASICs > mode2 reset > > The psp suspend & resume should be skipped to avoid destroy > the TMR and reload FWs again for IMU enabled APU ASICs. > > Signed-off-by: Tim Huang <tim.huang@xxxxxxx> Reviewed-by: Mario Limonciello <mario.limonciello@xxxxxxx> Please also for this one Cc: stable@xxxxxxxxxxxxxxx # 6.1 > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index efd4f8226120..0f9a5b12c3a5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -3036,6 +3036,18 @@ static int > amdgpu_device_ip_suspend_phase2(struct amdgpu_device *adev) > (adev->ip_blocks[i].version->type == > AMD_IP_BLOCK_TYPE_SDMA)) > continue; > > + /* Once swPSP provides the IMU, RLC FW binaries to TOS > during cold-boot. > + * These are in TMR, hence are expected to be reused by > PSP-TOS to reload > + * from this location and RLC Autoload automatically also gets > loaded > + * from here based on PMFW -> PSP message during re-init > sequence. > + * Therefore, the psp suspend & resume should be skipped > to avoid destroy > + * the TMR and reload FWs again for IMU enabled APU ASICs. > + */ > + if (amdgpu_in_reset(adev) && > + (adev->flags & AMD_IS_APU) && adev->gfx.imu.funcs && > + adev->ip_blocks[i].version->type == > AMD_IP_BLOCK_TYPE_PSP) > + continue; > + > /* XXX handle errors */ > r = adev->ip_blocks[i].version->funcs->suspend(adev); > /* XXX handle errors */ > -- > 2.25.1