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 <Monk.Liu at amd.com> Acked-by: Christian König <christian.koenig at amd.com> > --- > 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)