drivers: firmware: psci: add PSCI_FEATURES call
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 26 May 2015 16:06:21 +0000 (17:06 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 2 Oct 2015 13:35:16 +0000 (14:35 +0100)
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>
drivers/firmware/psci.c
include/uapi/linux/psci.h

index 3157eb0ef3000726e0d58290daba994dcada5bff..cec948b4ccd5cf4ca43555175ab795c6edecf1a1 100644 (file)
@@ -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).
index 64469e64688f3f32e77ca1c85ef5f662c3384df9..187b828d77b394d03d839f8bc9ef0b42f23f977e 100644 (file)
@@ -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