aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2015-05-26 12:06:21 -0400
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2015-10-02 09:35:16 -0400
commit5f004e0c9fb152a080b47d06dc48bdd29765a734 (patch)
tree89db88e5e9329508eb34ea6a81401cd1cac35926
parent068654c200cc32966ce7906ca0bd096b9b97e988 (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>
-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 3157eb0ef300..cec948b4ccd5 100644
--- a/drivers/firmware/psci.c
+++ b/drivers/firmware/psci.c
@@ -197,6 +197,12 @@ static void psci_sys_poweroff(void)
197 invoke_psci_fn(PSCI_0_2_FN_SYSTEM_OFF, 0, 0, 0); 197 invoke_psci_fn(PSCI_0_2_FN_SYSTEM_OFF, 0, 0, 0);
198} 198}
199 199
200static int __init psci_features(u32 psci_func_id)
201{
202 return invoke_psci_fn(PSCI_1_0_FN_PSCI_FEATURES,
203 psci_func_id, 0, 0);
204}
205
200/* 206/*
201 * Detect the presence of a resident Trusted OS which may cause CPU_OFF to 207 * Detect the presence of a resident Trusted OS which may cause CPU_OFF to
202 * return DENIED (which would be fatal). 208 * 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 @@
46#define PSCI_0_2_FN64_MIGRATE PSCI_0_2_FN64(5) 46#define PSCI_0_2_FN64_MIGRATE PSCI_0_2_FN64(5)
47#define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7) 47#define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7)
48 48
49#define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10)
50
49/* PSCI v0.2 power state encoding for CPU_SUSPEND function */ 51/* PSCI v0.2 power state encoding for CPU_SUSPEND function */
50#define PSCI_0_2_POWER_STATE_ID_MASK 0xffff 52#define PSCI_0_2_POWER_STATE_ID_MASK 0xffff
51#define PSCI_0_2_POWER_STATE_ID_SHIFT 0 53#define PSCI_0_2_POWER_STATE_ID_SHIFT 0