[PATCH 1/2] drm/amdgpu: skip psp suspend for IMU enabled ASICs mode2 reset
Limonciello, Mario
Mario.Limonciello at amd.com
Fri Jan 20 16:38:42 UTC 2023
[Public]
> -----Original Message-----
> From: Huang, Tim <Tim.Huang at amd.com>
> Sent: Friday, January 20, 2023 10:29
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Zhang, Yifan
> <Yifan1.Zhang at amd.com>; Du, Xiaojian <Xiaojian.Du at amd.com>; Ma, Li
> <Li.Ma at amd.com>; Limonciello, Mario <Mario.Limonciello at amd.com>;
> Huang, Tim <Tim.Huang at amd.com>
> 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 at amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello at amd.com>
Please also for this one
Cc: stable at vger.kernel.org # 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
More information about the amd-gfx
mailing list