[SRU][OEM-5.10][PULL] Add s2idle support on AMD Renoir and Cezanne
Kai-Heng Feng
kai.heng.feng at canonical.com
Tue May 4 14:58:18 UTC 2021
BugLink: https://bugs.launchpad.net/bugs/1927067
[Impact]
S2idle doesn't work on AMD Renoir and Cezanne.
[Fix]
Backport AMD PMC driver and pull many new patches let AMDGPU support s2idle.
[Test]
Suspend the laptop and the system freezes.
With the patch applied, suspend works but with some caveats:
1) Keyboard sometimes can't wake up the laptop.
2) Touchpad sometimes can wake up the laptop.
3) RTC can't wake up the laptop.
[Where problems could occur]
Most changes are limited to logic of suspend/resume, and specific to Renoir GFX.
However, there are some refactoring patches may cause unintended
results, so AMDGPU may break for sleep/hibernation/runtime suspend on
non-Renoir GFXs.
--
The following changes since commit bf0bf5a6f6debc0a3b1cab51c21cc823003238c1:
UBUNTU: Ubuntu-oem-5.10-5.10.0-1025.26 (2021-04-26 16:18:11 +0300)
are available in the Git repository at:
https://git.launchpad.net/~kaihengfeng/+git/linux amd-s0ix-5.10
for you to fetch changes up to 79ec557a2062e5e72fc31429efe6a64e91d7a72e:
UBUNTU: SAUCE: platform/x86: force LPS0 functions for AMD
(2021-05-04 19:55:36 +0800)
----------------------------------------------------------------
Alex Deucher (16):
drm/amdgpu: drop extra drm_kms_helper_poll_enable/disable calls
drm/amdgpu: use runpm flag rather than fbcon for kfd runtime suspend (v2)
drm/amdgpu: reset runpm flag if device suspend fails
drm/amdgpu: Only check for S0ix if AMD_PMC is configured
drm/amdgpu: fix S0ix handling when the CONFIG_AMD_PMC=m
drm/amdgpu: rework S3/S4/S0ix state handling
drm/amdgpu: don't evict vram on APUs for suspend to ram (v4)
drm/amdgpu: clean up non-DC suspend/resume handling
drm/amdgpu: move s0ix check into amdgpu_device_ip_suspend_phase2 (v3)
drm/amdgpu: re-enable suspend phase 2 for S0ix
drm/amdgpu/swsmu: skip gfx cgpg on s0ix suspend
drm/amdgpu: update comments about s0ix suspend/resume
drm/amdgpu: drop S0ix checks around CG/PG in suspend
drm/amdgpu: skip kfd suspend/resume for S0ix
UBUNTU: SAUCE: platform/x86: Add missing LPS0 functions for AMD
UBUNTU: SAUCE: platform/x86: force LPS0 functions for AMD
Kai-Heng Feng (2):
UBUNTU: [Config] Enable CONFIG_AMD_PMC=m
UBUNTU: SAUCE: Move ASPM quirk flag to MSB
Likun Gao (1):
drm/amdgpu: add judgement for suspend/resume sequence
Marcin Bachry (1):
UBUNTU: SAUCE: PCI: quirks: Quirk PCI d3hot delay for AMD xhci
Pan Bian (1):
platform/x86: amd-pmc: put device on error paths
Pratik Vishwakarma (1):
drm/amdgpu: skip CG/PG for gfx during S0ix
Prike Liang (9):
drm/amdgpu: add s0i3 capacity check for s0i3 routine (v2)
drm/amdgpu: add amdgpu_gfx_state_change_set() set gfx power
change entry (v2)
drm/amdgpu: update amdgpu device suspend/resume sequence for s0i3 support
drm/amd/pm: add gfx_state_change_set() for rn gfx power switch (v2)
drm/amdgpu/pm: no need GPU status set since
mmnbif_gpu_BIF_DOORBELL_FENCE_CNTL added in FSDL
drm/amdgpu: fix shutdown and poweroff process failed with s0ix
drm/amdgpu: fix the hibernation suspend with s0ix
UBUNTU: SAUCE: usb: pci-quirks: disable D3cold on AMD xhci
suspend for s2idle
UBUNTU: SAUCE: nvme: put some AMD PCIE downstream NVME device to
simple suspend/resume path
Prike.Liang (1):
UBUNTU: SAUCE: ACPI / idle: override and update c-state latency
when not conformance with s0ix
Shyam Sundar S K (3):
platform/x86: amd-pmc: Add AMD platform support for S2Idle
platform/x86: amd-pmc: Fix CONFIG_DEBUG_FS check
ACPI: PM: s2idle: Add AMD support to handle _DSM
Yifan Zhang (2):
drm/amd/display: setup system context in dm_init
drm/amd/display: add S/G support for Renoir
MAINTAINERS | 6 +
debian.oem/config/annotations | 1 +
debian.oem/config/config.common.ubuntu | 1 +
drivers/acpi/processor_idle.c | 17 ++
drivers/acpi/sleep.c | 177 ++++++++++++-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 17 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 123 +++------
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 93 +++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 3 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 27 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 20 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 9 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 9 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 9 +-
drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 15 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 61 +++++
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 2 +
drivers/gpu/drm/amd/pm/inc/hwmgr.h | 1 +
drivers/gpu/drm/amd/pm/inc/rv_ppsmc.h | 3 +-
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 19 ++
.../gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 8 +
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 17 +-
drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 7 +
drivers/nvme/host/pci.c | 5 +
drivers/pci/quirks.c | 12 +
drivers/platform/x86/Kconfig | 14 +
drivers/platform/x86/Makefile | 3 +
drivers/platform/x86/amd-pmc.c | 294 +++++++++++++++++++++
drivers/usb/host/xhci-pci.c | 6 +-
drivers/usb/host/xhci.h | 1 +
include/linux/pci.h | 4 +-
include/linux/pci_ids.h | 2 +
37 files changed, 894 insertions(+), 122 deletions(-)
create mode 100644 drivers/platform/x86/amd-pmc.c
More information about the kernel-team
mailing list