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 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"); |