diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index f1035a689d35..447d446b5015 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | |||
@@ -411,6 +411,13 @@ static int psp_hw_init(void *handle) | |||
411 | return 0; | 411 | return 0; |
412 | 412 | ||
413 | mutex_lock(&adev->firmware.mutex); | 413 | mutex_lock(&adev->firmware.mutex); |
414 | /* | ||
415 | * This sequence is just used on hw_init only once, no need on | ||
416 | * resume. | ||
417 | */ | ||
418 | ret = amdgpu_ucode_init_bo(adev); | ||
419 | if (ret) | ||
420 | goto failed; | ||
414 | 421 | ||
415 | ret = psp_load_fw(adev); | 422 | ret = psp_load_fw(adev); |
416 | if (ret) { | 423 | if (ret) { |
@@ -435,6 +442,8 @@ static int psp_hw_fini(void *handle) | |||
435 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) | 442 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) |
436 | return 0; | 443 | return 0; |
437 | 444 | ||
445 | amdgpu_ucode_fini_bo(adev); | ||
446 | |||
438 | psp_ring_destroy(psp, PSP_RING_TYPE__KM); | 447 | psp_ring_destroy(psp, PSP_RING_TYPE__KM); |
439 | 448 | ||
440 | amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); | 449 | amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); |