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