[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