diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 14 |
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) { |