|
@@ -62,6 +62,9 @@ static int psp_sw_init(void *handle)
|
|
|
|
|
|
psp->adev = adev;
|
|
|
|
|
|
+ if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
|
|
|
+ return 0;
|
|
|
+
|
|
|
ret = psp_init_microcode(psp);
|
|
|
if (ret) {
|
|
|
DRM_ERROR("Failed to load psp firmware!\n");
|
|
@@ -75,6 +78,9 @@ static int psp_sw_fini(void *handle)
|
|
|
{
|
|
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
|
|
|
|
|
+ if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
|
|
|
+ return 0;
|
|
|
+
|
|
|
release_firmware(adev->psp.sos_fw);
|
|
|
adev->psp.sos_fw = NULL;
|
|
|
release_firmware(adev->psp.asd_fw);
|
|
@@ -453,6 +459,9 @@ static int psp_suspend(void *handle)
|
|
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
|
|
struct psp_context *psp = &adev->psp;
|
|
|
|
|
|
+ if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
|
|
|
+ return 0;
|
|
|
+
|
|
|
ret = psp_ring_stop(psp, PSP_RING_TYPE__KM);
|
|
|
if (ret) {
|
|
|
DRM_ERROR("PSP ring stop failed\n");
|