[PATCH] drm/amdgpu: fix PSP autoload twice in FLR

Luben Tuikov luben.tuikov at amd.com
Wed Jul 29 14:18:25 UTC 2020


Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>

On 2020-07-29 04:50, Liu ChengZhe wrote:
> Assigning false to block->status.hw overwrites PSP's previous
> hardware status, which causes the PSP to Resume operation after
> hardware init.
> 
> Remove this assignment and let the PSP execute Resume operation
> when it is told to.
> 
> v2: Remove the braces.
> v3: Modify the description.
> 
> Signed-off-by: Liu ChengZhe <ChengZhe.Liu at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 62ecac97fbd2..5d9affa1d35a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2574,6 +2574,9 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev)
>  		AMD_IP_BLOCK_TYPE_IH,
>  	};
>  
> +	for (i = 0; i < adev->num_ip_blocks; i++)
> +		adev->ip_blocks[i].status.hw = false;
> +
>  	for (i = 0; i < ARRAY_SIZE(ip_order); i++) {
>  		int j;
>  		struct amdgpu_ip_block *block;
> @@ -2581,7 +2584,6 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev)
>  		for (j = 0; j < adev->num_ip_blocks; j++) {
>  			block = &adev->ip_blocks[j];
>  
> -			block->status.hw = false;
>  			if (block->version->type != ip_order[i] ||
>  				!block->status.valid)
>  				continue;
> 



More information about the amd-gfx mailing list