[Public]


> -----Original Message-----
> From: Huang, Tim <tim.hu...@amd.com>
> Sent: Friday, January 20, 2023 10:29
> To: amd-gfx@lists.freedesktop.org
> Cc: Deucher, Alexander <alexander.deuc...@amd.com>; Zhang, Yifan
> <yifan1.zh...@amd.com>; Du, Xiaojian <xiaojian...@amd.com>; Ma, Li
> <li...@amd.com>; Limonciello, Mario <mario.limoncie...@amd.com>;
> Huang, Tim <tim.hu...@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.hu...@amd.com>

Reviewed-by: Mario Limonciello <mario.limoncie...@amd.com>

Please also for this one
Cc: sta...@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

Reply via email to