diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 46 | 
1 files changed, 28 insertions, 18 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c index d4196fcb85a0..aeeec211861c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -971,6 +971,34 @@ static bool amdgpu_atcs_pci_probe_handle(struct pci_dev *pdev)  	return true;  } + +/** + * amdgpu_acpi_should_gpu_reset + * + * @adev: amdgpu_device_pointer + * + * returns true if should reset GPU, false if not + */ +bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) +{ +	if ((adev->flags & AMD_IS_APU) && +	    adev->gfx.imu.funcs) /* Not need to do mode2 reset for IMU enabled APUs */ +		return false; + +	if ((adev->flags & AMD_IS_APU) && +	    amdgpu_acpi_is_s3_active(adev)) +		return false; + +	if (amdgpu_sriov_vf(adev)) +		return false; + +#if IS_ENABLED(CONFIG_SUSPEND) +	return pm_suspend_target_state != PM_SUSPEND_TO_IDLE; +#else +	return true; +#endif +} +  /*   * amdgpu_acpi_detect - detect ACPI ATIF/ATCS methods   * @@ -1043,24 +1071,6 @@ bool amdgpu_acpi_is_s3_active(struct amdgpu_device *adev)  }  /** - * amdgpu_acpi_should_gpu_reset - * - * @adev: amdgpu_device_pointer - * - * returns true if should reset GPU, false if not - */ -bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) -{ -	if (adev->flags & AMD_IS_APU) -		return false; - -	if (amdgpu_sriov_vf(adev)) -		return false; - -	return pm_suspend_target_state != PM_SUSPEND_TO_IDLE; -} - -/**   * amdgpu_acpi_is_s0ix_active   *   * @adev: amdgpu_device_pointer |