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 05897b05766b1bb6ff300d0203404b208d5a8807..86cc24b2e0aa60557a64ab78332615da11b9ddb8 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,