aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware/psci.c
diff options
context:
space:
mode:
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2015-05-26 11:49:01 -0400
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2015-10-02 09:35:16 -0400
commit068654c200cc32966ce7906ca0bd096b9b97e988 (patch)
treed0b7c97952230aa8897b066f37fcf41a9d57be54 /drivers/firmware/psci.c
parent2217d7c68e5caf50ec86b8c75c76bf06eb4b2c45 (diff)
drivers: firmware: psci: move power_state handling to generic code
Functions implemented on arm64 to check if a power_state parameter is valid and if the power_state implies context loss are not arm64 specific and should be moved to generic code so that they can be reused on arm systems too. This patch moves the functions handling the power_state parameter to generic PSCI firmware layer code. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Will Deacon <will.deacon@arm.com> Acked-by: Sudeep Holla <sudeep.holla@arm.com> Tested-by: Jisheng Zhang <jszhang@marvell.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Mark Rutland <mark.rutland@arm.com>
Diffstat (limited to 'drivers/firmware/psci.c')
-rw-r--r--drivers/firmware/psci.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
index 0821e332c85a..3157eb0ef300 100644
--- a/drivers/firmware/psci.c
+++ b/drivers/firmware/psci.c
@@ -70,6 +70,21 @@ enum psci_function {
70 70
71static u32 psci_function_id[PSCI_FN_MAX]; 71static u32 psci_function_id[PSCI_FN_MAX];
72 72
73#define PSCI_0_2_POWER_STATE_MASK \
74 (PSCI_0_2_POWER_STATE_ID_MASK | \
75 PSCI_0_2_POWER_STATE_TYPE_MASK | \
76 PSCI_0_2_POWER_STATE_AFFL_MASK)
77
78bool psci_power_state_loses_context(u32 state)
79{
80 return state & PSCI_0_2_POWER_STATE_TYPE_MASK;
81}
82
83bool psci_power_state_is_valid(u32 state)
84{
85 return !(state & ~PSCI_0_2_POWER_STATE_MASK);
86}
87
73static int psci_to_linux_errno(int errno) 88static int psci_to_linux_errno(int errno)
74{ 89{
75 switch (errno) { 90 switch (errno) {