drm/amdgpu: skip fw pri bo alloc for SRIOV
authorYintian Tao <yttao@amd.com>
Thu, 16 May 2019 05:07:26 +0000 (13:07 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 20 May 2019 17:59:45 +0000 (12:59 -0500)
PSP fw primary buffer is not used under SRIOV.
Under SRIOV, VBIOS or hypervisor driver will load psp
sos and psp sysdrv. Therefore, we don't need to
allocate memory for it.

v2: remove superfluous check for amdgpu_bo_free_kernel().

Signed-off-by: Yintian Tao <yttao@amd.com>
Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index 05897b0..86cc24b 100644 (file)
@@ -877,13 +877,16 @@ static int psp_load_fw(struct amdgpu_device *adev)
        if (!psp->cmd)
                return -ENOMEM;
 
-       ret = amdgpu_bo_create_kernel(adev, PSP_1_MEG, PSP_1_MEG,
-                                       AMDGPU_GEM_DOMAIN_GTT,
-                                       &psp->fw_pri_bo,
-                                       &psp->fw_pri_mc_addr,
-                                       &psp->fw_pri_buf);
-       if (ret)
-               goto failed;
+       /* this fw pri bo is not used under SRIOV */
+       if (!amdgpu_sriov_vf(psp->adev)) {
+               ret = amdgpu_bo_create_kernel(adev, PSP_1_MEG, PSP_1_MEG,
+                                             AMDGPU_GEM_DOMAIN_GTT,
+                                             &psp->fw_pri_bo,
+                                             &psp->fw_pri_mc_addr,
+                                             &psp->fw_pri_buf);
+               if (ret)
+                       goto failed;
+       }
 
        ret = amdgpu_bo_create_kernel(adev, PSP_FENCE_BUFFER_SIZE, PAGE_SIZE,
                                        AMDGPU_GEM_DOMAIN_VRAM,