aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2015-05-26 17:06:21 +0100
committerAlex Shi <alex.shi@linaro.org>2016-01-20 19:26:31 +0800
commitd230b2cea7d14ec97904ddf5d0d55b865fdb5d1b (patch)
tree3587c7ad016c606cffaa568cf894067f6d8cd598
parent5174c70759650c86a8f02173804d5946628e581f (diff)
drivers: firmware: psci: add PSCI_FEATURES call
PSCI v1.0 introduces a PSCI_FEATURES call that allows to probe for features related to a specific function identifier. This patch adds PSCI_FEATURES support to the PSCI firmware layer. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Tested-by: Jisheng Zhang <jszhang@marvell.com> Cc: Mark Rutland <mark.rutland@arm.com> (cherry picked from commit 5f004e0c9fb152a080b47d06dc48bdd29765a734) Signed-off-by: Alex Shi <alex.shi@linaro.org>
-rw-r--r--drivers/firmware/psci.c6
-rw-r--r--include/uapi/linux/psci.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
index 462b0f95bae2..48ae95182b2a 100644
--- a/drivers/firmware/psci.c
+++ b/drivers/firmware/psci.c
@@ -197,6 +197,12 @@ static void psci_sys_poweroff(void)
invoke_psci_fn(PSCI_0_2_FN_SYSTEM_OFF, 0, 0, 0);
}
+static int __init psci_features(u32 psci_func_id)
+{
+ return invoke_psci_fn(PSCI_1_0_FN_PSCI_FEATURES,
+ psci_func_id, 0, 0);
+}
+
/*
* Detect the presence of a resident Trusted OS which may cause CPU_OFF to
* return DENIED (which would be fatal).
diff --git a/include/uapi/linux/psci.h b/include/uapi/linux/psci.h
index 64469e64688f..187b828d77b3 100644
--- a/include/uapi/linux/psci.h
+++ b/include/uapi/linux/psci.h
@@ -46,6 +46,8 @@
#define PSCI_0_2_FN64_MIGRATE PSCI_0_2_FN64(5)
#define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7)
+#define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10)
+
/* PSCI v0.2 power state encoding for CPU_SUSPEND function */
#define PSCI_0_2_POWER_STATE_ID_MASK 0xffff
#define PSCI_0_2_POWER_STATE_ID_SHIFT 0