diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 41c6b3aacd37..ab3794c42d36 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -2394,6 +2394,10 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)  	if (r)  		goto init_failed; +	r = amdgpu_amdkfd_resume_iommu(adev); +	if (r) +		goto init_failed; +  	r = amdgpu_device_ip_hw_init_phase1(adev);  	if (r)  		goto init_failed; @@ -3148,6 +3152,10 @@ static int amdgpu_device_ip_resume(struct amdgpu_device *adev)  {  	int r; +	r = amdgpu_amdkfd_resume_iommu(adev); +	if (r) +		return r; +  	r = amdgpu_device_ip_resume_phase1(adev);  	if (r)  		return r; @@ -4601,6 +4609,10 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,  				dev_warn(tmp_adev->dev, "asic atom init failed!");  			} else {  				dev_info(tmp_adev->dev, "GPU reset succeeded, trying to resume\n"); +				r = amdgpu_amdkfd_resume_iommu(tmp_adev); +				if (r) +					goto out; +  				r = amdgpu_device_ip_resume_phase1(tmp_adev);  				if (r)  					goto out;  |