diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index f3cada3f743b..4c43f9401f56 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2263,6 +2263,7 @@ static void amdgpu_drv_delayed_reset_work_handler(struct work_struct *work)  static int amdgpu_pmops_prepare(struct device *dev)  {  	struct drm_device *drm_dev = dev_get_drvdata(dev); +	struct amdgpu_device *adev = drm_to_adev(drm_dev);  	/* Return a positive number here so  	 * DPM_FLAG_SMART_SUSPEND works properly @@ -2271,6 +2272,13 @@ static int amdgpu_pmops_prepare(struct device *dev)  		return pm_runtime_suspended(dev) &&  			pm_suspend_via_firmware(); +	/* if we will not support s3 or s2i for the device +	 *  then skip suspend +	 */ +	if (!amdgpu_acpi_is_s0ix_active(adev) && +	    !amdgpu_acpi_is_s3_active(adev)) +		return 1; +  	return 0;  }  | 
