RE: [PATCH 04/18] drm/amdgpu/sriov:don't load psp fw during gpu reset
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 ; Liu, Monk ; amd-gfx@lists.freedesktop.org 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:amd-gfx-boun...@lists.freedesktop.org] On Behalf >Of Christian K?nig >Sent: Monday, September 18, 2017 5:06 PM >To: Liu, Monk ; amd-gfx@lists.freedesktop.org >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 > >Acked-by: Christian König > >> --- >> 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 >amd-gfx@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
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:amd-gfx-boun...@lists.freedesktop.org] On Behalf Of >Christian >K?nig >Sent: Monday, September 18, 2017 5:06 PM >To: Liu, Monk ; amd-gfx@lists.freedesktop.org >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 > >Acked-by: Christian König > >> --- >> 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 >amd-gfx@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
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 Acked-by: Christian König --- 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 amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx