[PATCH 0/3][SRU][UNSTABLE] Add s0i3 RTC wake up for AMD systems

Alex Hung alex.hung at canonical.com
Thu Nov 11 03:35:02 UTC 2021


BugLink: https://bugs.launchpad.net/bugs/1950013

[Impact]

  RTC based wakeup is not supported natively by the hardware for
  s0i3.

[Fix]

  A firmware and driver updates were implemented. The driver
  passes wakeup time to SMU to to enable RTC from S0i3.

  Note this s0i3 RTC wake up also requires new firmware.

  The first patch is the prerequisite actual fix (patch 2 and 3).

[Test]

  This is requested by AMD and tested by an AMD developer as below:

	Testing a suspend run with RTC for 15 seconds and then 30 seconds:
	```
	$ sudo rtcwake --seconds 15 -m mem
	rtcwake: assuming RTC uses UTC ...
	rtcwake: wakeup from "mem" using /dev/rtc0 at Fri Nov 5 02:31:45 2021
	$ sudo rtcwake --seconds 30 -m mem
	rtcwake: assuming RTC uses UTC ...
	rtcwake: wakeup from "mem" using /dev/rtc0 at Fri Nov 5 02:33:13 2021
	$ sudo cat /sys/kernel/debug/amd_pmc/s0ix_stats
	=== S0ix statistics ===
	S0ix Entry Time: 4793618285
	S0ix Exit Time: 6209036738
	Residency Time: 29487884
	```
	Residency divided by 1000000 is 29.4 seconds.

	Reading idle mask works fine too.

[Where problems could occur]

  Low risk.

  First patch only exports Idlemask value.
  The actual fix only affects a specific AMD CPU (CZN).

Mario Limonciello (2):
  platform/x86: amd-pmc: adjust arguments for `amd_pmc_send_cmd`
  platform/x86: amd-pmc: Add special handling for timer based S0i3
    wakeup

Sanket Goswami (1):
  platform/x86: amd-pmc: Export Idlemask values based on the APU

 drivers/platform/x86/amd-pmc.c | 142 ++++++++++++++++++++++++++++++++-
 1 file changed, 138 insertions(+), 4 deletions(-)

-- 
2.33.1




More information about the kernel-team mailing list