aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
diff options
context:
space:
mode:
authorFrank Min <Frank.Min@amd.com>2016-04-27 08:02:57 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-10-25 14:38:22 -0400
commitf501a7e550015bc3170c24d18ba1a008e38bddbf (patch)
tree15edfc7256a355c2df7a093b4d381616e3fa290a /drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
parent01ab960d49cdc8d7fbfa5a6f2b717f491927a776 (diff)
drm/amdgpu:fw bo should be in VRAM for SRIOV
for GTT memory SMC can only access it within PF space, which is not used for SRIOV case, thus for SRIOV case, we let SMC use FB space for ucode bo. Signed-off-by: Frank Min <frank.min@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
index cb3d252f3c78..b7b82a270420 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
@@ -247,7 +247,8 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
247 const struct common_firmware_header *header = NULL; 247 const struct common_firmware_header *header = NULL;
248 248
249 err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true, 249 err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true,
250 AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, bo); 250 amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
251 0, NULL, NULL, bo);
251 if (err) { 252 if (err) {
252 dev_err(adev->dev, "(%d) Firmware buffer allocate failed\n", err); 253 dev_err(adev->dev, "(%d) Firmware buffer allocate failed\n", err);
253 goto failed; 254 goto failed;
@@ -259,7 +260,8 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
259 goto failed_reserve; 260 goto failed_reserve;
260 } 261 }
261 262
262 err = amdgpu_bo_pin(*bo, AMDGPU_GEM_DOMAIN_GTT, &fw_mc_addr); 263 err = amdgpu_bo_pin(*bo, amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
264 &fw_mc_addr);
263 if (err) { 265 if (err) {
264 dev_err(adev->dev, "(%d) Firmware buffer pin failed\n", err); 266 dev_err(adev->dev, "(%d) Firmware buffer pin failed\n", err);
265 goto failed_pin; 267 goto failed_pin;