Skip mode2 reset only for IMU enabled APUs when do S4 to fix the possible S4 regression issues on old ASICs. v2: Update this commit message to add Fixes and Link tags. Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2483 Fixes: 2bedd3f21b30 ("drm/amdgpu: skip ASIC reset for APUs when go to S4") Signed-off-by: Tim Huang <tim.huang@xxxxxxx> Tested-by: Yuan Perry <Perry.Yuan@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c index 0f7cd3e8e00b..edaf3ded4a04 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -981,7 +981,12 @@ static bool amdgpu_atcs_pci_probe_handle(struct pci_dev *pdev) */ bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { - if (adev->flags & AMD_IS_APU) + 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)) -- 2.25.1