RE: [PATCH 1/2] drm/amdgpu: skip psp suspend for IMU enabled ASICs mode2 reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux