Skip to content
Commit 58ec9598 authored by James Morse's avatar James Morse
Browse files

arm64: suspend: PSCI suspend finisher success isn't an error



cpu_suspend() calls the PSCI function to put the CPU into a powedown
state that loses the current context. cpu_suspend() will also put
all the pieces back together when the CPU returns via the cold path.

cpu_suspend() anticipates that any return from the PSCI 'finisher'
function is an error. This isn't so. 5.4.5 "Caller responsibilities"
of DEN0022E describes how firmware may downgrade a powerdown state
to a standby state, and return to the next instruction with a
return code of 'success'.

cpu_suspend() returns an error to its caller in this case, which
results in the PSCI checker reporting pages of:
| psci_checker: Failed to suspend CPU 0: error -1 (requested state 3, cycle 6)

Convert errors from the PSCI finisher to linux errno values, and
allow them to be returned from cpu_suspend().

This prevents such an occurance from being treated as an error.

Signed-off-by: James Morse's avatarJames Morse <james.morse@arm.com>
parent 21365f50
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment