diff options
Diffstat (limited to 'include/linux/psci.h')
-rw-r--r-- | include/linux/psci.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/linux/psci.h b/include/linux/psci.h index bdea1cb5e1db..8b1b3b5935ab 100644 --- a/include/linux/psci.h +++ b/include/linux/psci.h | |||
@@ -25,7 +25,19 @@ bool psci_tos_resident_on(int cpu); | |||
25 | int psci_cpu_init_idle(unsigned int cpu); | 25 | int psci_cpu_init_idle(unsigned int cpu); |
26 | int psci_cpu_suspend_enter(unsigned long index); | 26 | int psci_cpu_suspend_enter(unsigned long index); |
27 | 27 | ||
28 | enum psci_conduit { | ||
29 | PSCI_CONDUIT_NONE, | ||
30 | PSCI_CONDUIT_SMC, | ||
31 | PSCI_CONDUIT_HVC, | ||
32 | }; | ||
33 | |||
34 | enum smccc_version { | ||
35 | SMCCC_VERSION_1_0, | ||
36 | SMCCC_VERSION_1_1, | ||
37 | }; | ||
38 | |||
28 | struct psci_operations { | 39 | struct psci_operations { |
40 | u32 (*get_version)(void); | ||
29 | int (*cpu_suspend)(u32 state, unsigned long entry_point); | 41 | int (*cpu_suspend)(u32 state, unsigned long entry_point); |
30 | int (*cpu_off)(u32 state); | 42 | int (*cpu_off)(u32 state); |
31 | int (*cpu_on)(unsigned long cpuid, unsigned long entry_point); | 43 | int (*cpu_on)(unsigned long cpuid, unsigned long entry_point); |
@@ -33,6 +45,8 @@ struct psci_operations { | |||
33 | int (*affinity_info)(unsigned long target_affinity, | 45 | int (*affinity_info)(unsigned long target_affinity, |
34 | unsigned long lowest_affinity_level); | 46 | unsigned long lowest_affinity_level); |
35 | int (*migrate_info_type)(void); | 47 | int (*migrate_info_type)(void); |
48 | enum psci_conduit conduit; | ||
49 | enum smccc_version smccc_version; | ||
36 | }; | 50 | }; |
37 | 51 | ||
38 | extern struct psci_operations psci_ops; | 52 | extern struct psci_operations psci_ops; |
@@ -46,10 +60,11 @@ static inline int psci_dt_init(void) { return 0; } | |||
46 | #if defined(CONFIG_ARM_PSCI_FW) && defined(CONFIG_ACPI) | 60 | #if defined(CONFIG_ARM_PSCI_FW) && defined(CONFIG_ACPI) |
47 | int __init psci_acpi_init(void); | 61 | int __init psci_acpi_init(void); |
48 | bool __init acpi_psci_present(void); | 62 | bool __init acpi_psci_present(void); |
49 | bool __init acpi_psci_use_hvc(void); | 63 | bool acpi_psci_use_hvc(void); |
50 | #else | 64 | #else |
51 | static inline int psci_acpi_init(void) { return 0; } | 65 | static inline int psci_acpi_init(void) { return 0; } |
52 | static inline bool acpi_psci_present(void) { return false; } | 66 | static inline bool acpi_psci_present(void) { return false; } |
67 | static inline bool acpi_psci_use_hvc(void) {return false; } | ||
53 | #endif | 68 | #endif |
54 | 69 | ||
55 | #endif /* __LINUX_PSCI_H */ | 70 | #endif /* __LINUX_PSCI_H */ |