aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c9
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 6e712f12eecd..9a75410cd576 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -62,6 +62,9 @@ static int psp_sw_init(void *handle)
62 62
63 psp->adev = adev; 63 psp->adev = adev;
64 64
65 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
66 return 0;
67
65 ret = psp_init_microcode(psp); 68 ret = psp_init_microcode(psp);
66 if (ret) { 69 if (ret) {
67 DRM_ERROR("Failed to load psp firmware!\n"); 70 DRM_ERROR("Failed to load psp firmware!\n");
@@ -75,6 +78,9 @@ static int psp_sw_fini(void *handle)
75{ 78{
76 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 79 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
77 80
81 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
82 return 0;
83
78 release_firmware(adev->psp.sos_fw); 84 release_firmware(adev->psp.sos_fw);
79 adev->psp.sos_fw = NULL; 85 adev->psp.sos_fw = NULL;
80 release_firmware(adev->psp.asd_fw); 86 release_firmware(adev->psp.asd_fw);
@@ -453,6 +459,9 @@ static int psp_suspend(void *handle)
453 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 459 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
454 struct psp_context *psp = &adev->psp; 460 struct psp_context *psp = &adev->psp;
455 461
462 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
463 return 0;
464
456 ret = psp_ring_stop(psp, PSP_RING_TYPE__KM); 465 ret = psp_ring_stop(psp, PSP_RING_TYPE__KM);
457 if (ret) { 466 if (ret) {
458 DRM_ERROR("PSP ring stop failed\n"); 467 DRM_ERROR("PSP ring stop failed\n");