diff options
author | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2015-05-26 12:06:21 -0400 |
---|---|---|
committer | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2015-10-02 09:35:16 -0400 |
commit | 5f004e0c9fb152a080b47d06dc48bdd29765a734 (patch) | |
tree | 89db88e5e9329508eb34ea6a81401cd1cac35926 | |
parent | 068654c200cc32966ce7906ca0bd096b9b97e988 (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.c | 6 | ||||
-rw-r--r-- | include/uapi/linux/psci.h | 2 |
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 | ||
200 | static 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 |