aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/psci.h
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2018-02-06 12:56:16 -0500
committerCatalin Marinas <catalin.marinas@arm.com>2018-02-06 17:54:09 -0500
commit09a8d6d48499f93e2abde691f5800081cd858726 (patch)
treec8c2b16ab960e7537b84187d00b00adeea7fbb7e /include/linux/psci.h
parentf72af90c3783d924337624659b43e2d36f1b36b4 (diff)
firmware/psci: Expose PSCI conduit
In order to call into the firmware to apply workarounds, it is useful to find out whether we're using HVC or SMC. Let's expose this through the psci_ops. Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'include/linux/psci.h')
-rw-r--r--include/linux/psci.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/psci.h b/include/linux/psci.h
index f724fd8c78e8..f2679e5faa4f 100644
--- a/include/linux/psci.h
+++ b/include/linux/psci.h
@@ -25,6 +25,12 @@ bool psci_tos_resident_on(int cpu);
25int psci_cpu_init_idle(unsigned int cpu); 25int psci_cpu_init_idle(unsigned int cpu);
26int psci_cpu_suspend_enter(unsigned long index); 26int psci_cpu_suspend_enter(unsigned long index);
27 27
28enum psci_conduit {
29 PSCI_CONDUIT_NONE,
30 PSCI_CONDUIT_SMC,
31 PSCI_CONDUIT_HVC,
32};
33
28struct psci_operations { 34struct psci_operations {
29 u32 (*get_version)(void); 35 u32 (*get_version)(void);
30 int (*cpu_suspend)(u32 state, unsigned long entry_point); 36 int (*cpu_suspend)(u32 state, unsigned long entry_point);
@@ -34,6 +40,7 @@ struct psci_operations {
34 int (*affinity_info)(unsigned long target_affinity, 40 int (*affinity_info)(unsigned long target_affinity,
35 unsigned long lowest_affinity_level); 41 unsigned long lowest_affinity_level);
36 int (*migrate_info_type)(void); 42 int (*migrate_info_type)(void);
43 enum psci_conduit conduit;
37}; 44};
38 45
39extern struct psci_operations psci_ops; 46extern struct psci_operations psci_ops;