forked from Minki/linux
drm/amdgpu: cleanup some incorrect reg access for SRIOV
1) we shouldn't load PSP kdb and sys/sos for VF, they are supposed to be handled by hypervisor 2) ih reroute doesn't work on VF thus we should avoid calling it, besides VF should not use those PSP register sets for PF 3) shouldn't load SMU ucode under SRIOV, otherwise PSP would report error Signed-off-by: Monk Liu <Monk.Liu@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
14008574a3
commit
f77a9c920a
@ -1081,7 +1081,7 @@ static int psp_hw_start(struct psp_context *psp)
|
||||
struct amdgpu_device *adev = psp->adev;
|
||||
int ret;
|
||||
|
||||
if (!amdgpu_sriov_vf(adev) || !adev->in_gpu_reset) {
|
||||
if (!amdgpu_sriov_vf(adev) && !adev->in_gpu_reset) {
|
||||
if (psp->kdb_bin_size &&
|
||||
(psp->funcs->bootloader_load_kdb != NULL)) {
|
||||
ret = psp_bootloader_load_kdb(psp);
|
||||
@ -1318,7 +1318,7 @@ static int psp_np_fw_load(struct psp_context *psp)
|
||||
|
||||
if (psp->autoload_supported) {
|
||||
ucode = &adev->firmware.ucode[AMDGPU_UCODE_ID_SMC];
|
||||
if (!ucode->fw)
|
||||
if (!ucode->fw || amdgpu_sriov_vf(adev))
|
||||
goto out;
|
||||
|
||||
ret = psp_execute_np_fw_load(psp, ucode);
|
||||
|
@ -420,7 +420,8 @@ static int psp_v11_0_ring_init(struct psp_context *psp,
|
||||
struct psp_ring *ring;
|
||||
struct amdgpu_device *adev = psp->adev;
|
||||
|
||||
psp_v11_0_reroute_ih(psp);
|
||||
if (!amdgpu_sriov_vf(adev))
|
||||
psp_v11_0_reroute_ih(psp);
|
||||
|
||||
ring = &psp->km_ring;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user