diff options
author | danh-arm <dan.handley@arm.com> | 2015-01-26 12:37:47 +0000 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2015-01-26 12:37:47 +0000 |
commit | 860331aa15ab251c515c396a5c095662de4ae5e6 (patch) | |
tree | e924ed472c64caeea1c5ecd696230f2bb71e93fb /include/bl31 | |
parent | eadd7a1b1e1dc270bed8df3197ea6fe9f1286849 (diff) | |
parent | 22f08973f35d3413148168a0a622d7dcd2c2630b (diff) |
Merge pull request #243 from soby-mathew/sm/psci_cleanup_1
Clean-up PSCI code and introduce early validation of parameters v3
Diffstat (limited to 'include/bl31')
-rw-r--r-- | include/bl31/services/psci.h | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/include/bl31/services/psci.h b/include/bl31/services/psci.h index dc6cc04c..3804bf2c 100644 --- a/include/bl31/services/psci.h +++ b/include/bl31/services/psci.h @@ -89,12 +89,12 @@ #define PSTATE_TYPE_STANDBY 0x0 #define PSTATE_TYPE_POWERDOWN 0x1 -#define psci_get_pstate_id(pstate) (pstate >> PSTATE_ID_SHIFT) & \ - PSTATE_ID_MASK -#define psci_get_pstate_type(pstate) (pstate >> PSTATE_TYPE_SHIFT) & \ - PSTATE_TYPE_MASK -#define psci_get_pstate_afflvl(pstate) (pstate >> PSTATE_AFF_LVL_SHIFT) & \ - PSTATE_AFF_LVL_MASK +#define psci_get_pstate_id(pstate) ((pstate >> PSTATE_ID_SHIFT) & \ + PSTATE_ID_MASK) +#define psci_get_pstate_type(pstate) ((pstate >> PSTATE_TYPE_SHIFT) & \ + PSTATE_TYPE_MASK) +#define psci_get_pstate_afflvl(pstate) ((pstate >> PSTATE_AFF_LVL_SHIFT) & \ + PSTATE_AFF_LVL_MASK) /******************************************************************************* * PSCI version @@ -161,24 +161,22 @@ typedef struct psci_cpu_data { * perform common low level pm functions ******************************************************************************/ typedef struct plat_pm_ops { - int (*affinst_standby)(unsigned int); - int (*affinst_on)(unsigned long, - unsigned long, - unsigned long, - unsigned int, - unsigned int); - int (*affinst_off)(unsigned long, unsigned int, unsigned int); - int (*affinst_suspend)(unsigned long, - unsigned long, - unsigned long, - unsigned int, - unsigned int); - int (*affinst_on_finish)(unsigned long, unsigned int, unsigned int); - int (*affinst_suspend_finish)(unsigned long, - unsigned int, - unsigned int); + void (*affinst_standby)(unsigned int power_state); + int (*affinst_on)(unsigned long mpidr, + unsigned long sec_entrypoint, + unsigned int afflvl, + unsigned int state); + void (*affinst_off)(unsigned int afflvl, unsigned int state); + void (*affinst_suspend)(unsigned long sec_entrypoint, + unsigned int afflvl, + unsigned int state); + void (*affinst_on_finish)(unsigned int afflvl, unsigned int state); + void (*affinst_suspend_finish)(unsigned int afflvl, + unsigned int state); void (*system_off)(void) __dead2; void (*system_reset)(void) __dead2; + int (*validate_power_state)(unsigned int power_state); + int (*validate_ns_entrypoint)(unsigned long ns_entrypoint); } plat_pm_ops_t; /******************************************************************************* @@ -190,7 +188,7 @@ typedef struct plat_pm_ops { typedef struct spd_pm_ops { void (*svc_on)(uint64_t target_cpu); int32_t (*svc_off)(uint64_t __unused); - void (*svc_suspend)(uint64_t power_state); + void (*svc_suspend)(uint64_t __unused); void (*svc_on_finish)(uint64_t __unused); void (*svc_suspend_finish)(uint64_t suspend_level); void (*svc_migrate)(uint64_t __unused1, uint64_t __unused2); |