diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 86fbb4138285..bfb7ed254ee4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2414,8 +2414,10 @@ static int amdgpu_pmops_suspend(struct device *dev)  	if (amdgpu_acpi_is_s0ix_active(adev))  		adev->in_s0ix = true; -	else +	else if (amdgpu_acpi_is_s3_active(adev))  		adev->in_s3 = true; +	if (!adev->in_s0ix && !adev->in_s3) +		return 0;  	return amdgpu_device_suspend(drm_dev, true);  } @@ -2436,6 +2438,9 @@ static int amdgpu_pmops_resume(struct device *dev)  	struct amdgpu_device *adev = drm_to_adev(drm_dev);  	int r; +	if (!adev->in_s0ix && !adev->in_s3) +		return 0; +  	/* Avoids registers access if device is physically gone */  	if (!pci_device_is_present(adev->pdev))  		adev->no_hw_access = true; | 
