This condition is wrong, you are right, and I followed up a patch to correct it 
Should be :

If (!amdgpu_sriov_vf()) || !adev->in_reset)


BR Monk

-----Original Message-----
From: Quan, Evan 
Sent: 2017年9月20日 9:32
To: Koenig, Christian <[email protected]>; Liu, Monk <[email protected]>; 
[email protected]
Subject: RE: [PATCH 04/18] drm/amdgpu/sriov:don't load psp fw during gpu reset

Hi Monk,

I think your change affects barematal case. Per my confirmation, vega10 cannot 
boot with the change applied.
If the change is only intended to cover gpu reset case of sriov, maybe the 
logic should be If (!(amdgpu_sriov_vf(adev) && adev->in_sriov_reset))

Regards,
Evan
>-----Original Message-----
>From: amd-gfx [mailto:[email protected]] On Behalf 
>Of Christian K?nig
>Sent: Monday, September 18, 2017 5:06 PM
>To: Liu, Monk <[email protected]>; [email protected]
>Subject: Re: [PATCH 04/18] drm/amdgpu/sriov:don't load psp fw during 
>gpu reset
>
>Am 18.09.2017 um 08:11 schrieb Monk Liu:
>> At least for SRIOV we found reload PSP fw during gpu reset cause PSP 
>> hang.
>>
>> Change-Id: I5f273187a10bb8571b77651dfba7656ce0429af0
>> Signed-off-by: Monk Liu <[email protected]>
>
>Acked-by: Christian König <[email protected]>
>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 15 +++++++++------
>>   1 file changed, 9 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>> index 8a1ee97..4eee2ef 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>> @@ -253,15 +253,18 @@ static int psp_asd_load(struct psp_context 
>> *psp)
>>
>>   static int psp_hw_start(struct psp_context *psp)
>>   {
>> +    struct amdgpu_device *adev = psp->adev;
>>      int ret;
>>
>> -    ret = psp_bootloader_load_sysdrv(psp);
>> -    if (ret)
>> -            return ret;
>> +    if (amdgpu_sriov_vf(adev) && !adev->in_sriov_reset) {
>> +            ret = psp_bootloader_load_sysdrv(psp);
>> +            if (ret)
>> +                    return ret;
>>
>> -    ret = psp_bootloader_load_sos(psp);
>> -    if (ret)
>> -            return ret;
>> +            ret = psp_bootloader_load_sos(psp);
>> +            if (ret)
>> +                    return ret;
>> +    }
>>
>>      ret = psp_ring_create(psp, PSP_RING_TYPE__KM);
>>      if (ret)
>
>
>_______________________________________________
>amd-gfx mailing list
>[email protected]
>https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to