aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
index 4f50eeb65855..fcfb9d4f7477 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
@@ -275,14 +275,10 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type)
275 else 275 else
276 return AMDGPU_FW_LOAD_PSP; 276 return AMDGPU_FW_LOAD_PSP;
277 case CHIP_RAVEN: 277 case CHIP_RAVEN:
278#if 0 278 if (load_type != 2)
279 if (!load_type)
280 return AMDGPU_FW_LOAD_DIRECT; 279 return AMDGPU_FW_LOAD_DIRECT;
281 else 280 else
282 return AMDGPU_FW_LOAD_PSP; 281 return AMDGPU_FW_LOAD_PSP;
283#else
284 return AMDGPU_FW_LOAD_DIRECT;
285#endif
286 default: 282 default:
287 DRM_ERROR("Unknow firmware load type\n"); 283 DRM_ERROR("Unknow firmware load type\n");
288 } 284 }
@@ -377,6 +373,11 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
377 struct amdgpu_firmware_info *ucode = NULL; 373 struct amdgpu_firmware_info *ucode = NULL;
378 const struct common_firmware_header *header = NULL; 374 const struct common_firmware_header *header = NULL;
379 375
376 if (!adev->firmware.fw_size) {
377 dev_warn(adev->dev, "No ip firmware need to load\n");
378 return 0;
379 }
380
380 err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true, 381 err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true,
381 amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT, 382 amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
382 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS, 383 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
@@ -459,6 +460,9 @@ int amdgpu_ucode_fini_bo(struct amdgpu_device *adev)
459 int i; 460 int i;
460 struct amdgpu_firmware_info *ucode = NULL; 461 struct amdgpu_firmware_info *ucode = NULL;
461 462
463 if (!adev->firmware.fw_size)
464 return 0;
465
462 for (i = 0; i < adev->firmware.max_ucodes; i++) { 466 for (i = 0; i < adev->firmware.max_ucodes; i++) {
463 ucode = &adev->firmware.ucode[i]; 467 ucode = &adev->firmware.ucode[i];
464 if (ucode->fw) { 468 if (ucode->fw) {