[SRU][Hirsute][PULL] Add s2idle support on AMD Renoir and Cezanne

Kai-Heng Feng kai.heng.feng at canonical.com
Tue May 4 14:58:16 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 5ba37be432361c9b7bfe988212c877c66ba20b18:

  ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on
EliteBook 845 G8 (2021-04-23 11:42:33 +0200)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/+git/linux amd-s0ix-5.11

for you to fetch changes up to 0947779e0df7ece3efd41ae8844f31a7fabcb11d:

  UBUNTU: SAUCE: platform/x86: force LPS0 functions for AMD
(2021-05-04 20:12:38 +0800)

----------------------------------------------------------------
Alex Deucher (14):
      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: 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 (1):
      UBUNTU: SAUCE: Move ASPM quirk flag to MSB

Marcin Bachry (1):
      UBUNTU: SAUCE: PCI: quirks: Quirk PCI d3hot delay for AMD xhci

Pratik Vishwakarma (1):
      drm/amdgpu: skip CG/PG for gfx during S0ix

Prike Liang (2):
      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

 drivers/acpi/processor_idle.c               |  17 ++++
 drivers/acpi/x86/s2idle.c                   |  11 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu.h         |  10 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c  | 138 +++++++---------------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c |  89 ++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.h |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c     |  36 +++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c  |   7 +-
 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/pm/swsmu/amdgpu_smu.c   |   5 +-
 drivers/nvme/host/pci.c                     |   5 +
 drivers/pci/quirks.c                        |  12 +++
 drivers/usb/host/xhci-pci.c                 |   6 +-
 drivers/usb/host/xhci.h                     |   1 +
 include/linux/pci.h                         |   4 +-
 include/linux/pci_ids.h                     |   2 +
 20 files changed, 256 insertions(+), 140 deletions(-)



More information about the kernel-team mailing list