{
        int ret;
        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;
 
+       DRM_INFO("PSP is resuming...\n");
+
        mutex_lock(&adev->firmware.mutex);
 
-       ret = psp_load_fw(adev);
+       ret = psp_hw_start(psp);
        if (ret)
-               DRM_ERROR("PSP resume failed\n");
+               goto failed;
+
+       ret = psp_np_fw_load(psp);
+       if (ret)
+               goto failed;
 
        mutex_unlock(&adev->firmware.mutex);
 
+       return 0;
+
+failed:
+       DRM_ERROR("PSP resume failed\n");
+       mutex_unlock(&adev->firmware.mutex);
        return ret;
 }