Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kselftest: cpufreq: Get rid of double suspend in rtcwake case

Commit 0b631ed3ce92 ("kselftest: cpufreq: Add RTC wakeup alarm") added
support for automatic wakeup in the suspend routine of the cpufreq
kselftest by using rtcwake, however it left the manual power state
change in the common path. The end result is that when running the
cpufreq kselftest with '-t suspend_rtc' or '-t hibernate_rtc', the
system will go to sleep and be woken up by the RTC, but then immediately
go to sleep again with no wakeup programmed, so it will sleep forever in
an automated testing setup.

Fix this by moving the manual power state change so that it only happens
when not using rtcwake.

Link: https://lore.kernel.org/r/20250430-ksft-cpufreq-suspend-rtc-double-fix-v1-1-dc17a729c5a7@collabora.com
Fixes: 0b631ed3ce92 ("kselftest: cpufreq: Add RTC wakeup alarm")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Nícolas F. R. A. Prado and committed by
Shuah Khan
23b88515 8ffe7720

+2 -1
+2 -1
tools/testing/selftests/cpufreq/cpufreq.sh
··· 251 251 printf "Failed to suspend using RTC wake alarm\n" 252 252 return 1 253 253 fi 254 + else 255 + echo $filename > $SYSFS/power/state 254 256 fi 255 257 256 - echo $filename > $SYSFS/power/state 257 258 printf "Came out of $1\n" 258 259 259 260 printf "Do basic tests after finishing $1 to verify cpufreq state\n\n"