Commit a5520eac authored by Mark Rutland's avatar Mark Rutland Committed by Catalin Marinas

firmware/psci: use common SMCCC_CONDUIT_*

Now that we have common SMCCC_CONDUIT_* definitions, migrate the PSCI
code over to them, and kill off the old PSCI_CONDUIT_* definitions.

There should be no functional change as a result of this patch.
Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 6848253d
...@@ -53,7 +53,7 @@ bool psci_tos_resident_on(int cpu) ...@@ -53,7 +53,7 @@ bool psci_tos_resident_on(int cpu)
} }
struct psci_operations psci_ops = { struct psci_operations psci_ops = {
.conduit = PSCI_CONDUIT_NONE, .conduit = SMCCC_CONDUIT_NONE,
.smccc_version = SMCCC_VERSION_1_0, .smccc_version = SMCCC_VERSION_1_0,
}; };
...@@ -62,14 +62,7 @@ enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void) ...@@ -62,14 +62,7 @@ enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
if (psci_ops.smccc_version < SMCCC_VERSION_1_1) if (psci_ops.smccc_version < SMCCC_VERSION_1_1)
return SMCCC_CONDUIT_NONE; return SMCCC_CONDUIT_NONE;
switch (psci_ops.conduit) { return psci_ops.conduit;
case PSCI_CONDUIT_SMC:
return SMCCC_CONDUIT_SMC;
case PSCI_CONDUIT_HVC:
return SMCCC_CONDUIT_HVC;
default:
return SMCCC_CONDUIT_NONE;
}
} }
typedef unsigned long (psci_fn)(unsigned long, unsigned long, typedef unsigned long (psci_fn)(unsigned long, unsigned long,
...@@ -227,13 +220,13 @@ static unsigned long psci_migrate_info_up_cpu(void) ...@@ -227,13 +220,13 @@ static unsigned long psci_migrate_info_up_cpu(void)
0, 0, 0); 0, 0, 0);
} }
static void set_conduit(enum psci_conduit conduit) static void set_conduit(enum arm_smccc_conduit conduit)
{ {
switch (conduit) { switch (conduit) {
case PSCI_CONDUIT_HVC: case SMCCC_CONDUIT_HVC:
invoke_psci_fn = __invoke_psci_fn_hvc; invoke_psci_fn = __invoke_psci_fn_hvc;
break; break;
case PSCI_CONDUIT_SMC: case SMCCC_CONDUIT_SMC:
invoke_psci_fn = __invoke_psci_fn_smc; invoke_psci_fn = __invoke_psci_fn_smc;
break; break;
default: default:
...@@ -255,9 +248,9 @@ static int get_set_conduit_method(struct device_node *np) ...@@ -255,9 +248,9 @@ static int get_set_conduit_method(struct device_node *np)
} }
if (!strcmp("hvc", method)) { if (!strcmp("hvc", method)) {
set_conduit(PSCI_CONDUIT_HVC); set_conduit(SMCCC_CONDUIT_HVC);
} else if (!strcmp("smc", method)) { } else if (!strcmp("smc", method)) {
set_conduit(PSCI_CONDUIT_SMC); set_conduit(SMCCC_CONDUIT_SMC);
} else { } else {
pr_warn("invalid \"method\" property: %s\n", method); pr_warn("invalid \"method\" property: %s\n", method);
return -EINVAL; return -EINVAL;
...@@ -598,9 +591,9 @@ int __init psci_acpi_init(void) ...@@ -598,9 +591,9 @@ int __init psci_acpi_init(void)
pr_info("probing for conduit method from ACPI.\n"); pr_info("probing for conduit method from ACPI.\n");
if (acpi_psci_use_hvc()) if (acpi_psci_use_hvc())
set_conduit(PSCI_CONDUIT_HVC); set_conduit(SMCCC_CONDUIT_HVC);
else else
set_conduit(PSCI_CONDUIT_SMC); set_conduit(SMCCC_CONDUIT_SMC);
return psci_probe(); return psci_probe();
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#ifndef __LINUX_PSCI_H #ifndef __LINUX_PSCI_H
#define __LINUX_PSCI_H #define __LINUX_PSCI_H
#include <linux/arm-smccc.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -18,12 +19,6 @@ bool psci_tos_resident_on(int cpu); ...@@ -18,12 +19,6 @@ bool psci_tos_resident_on(int cpu);
int psci_cpu_suspend_enter(u32 state); int psci_cpu_suspend_enter(u32 state);
bool psci_power_state_is_valid(u32 state); bool psci_power_state_is_valid(u32 state);
enum psci_conduit {
PSCI_CONDUIT_NONE,
PSCI_CONDUIT_SMC,
PSCI_CONDUIT_HVC,
};
enum smccc_version { enum smccc_version {
SMCCC_VERSION_1_0, SMCCC_VERSION_1_0,
SMCCC_VERSION_1_1, SMCCC_VERSION_1_1,
...@@ -38,7 +33,7 @@ struct psci_operations { ...@@ -38,7 +33,7 @@ struct psci_operations {
int (*affinity_info)(unsigned long target_affinity, int (*affinity_info)(unsigned long target_affinity,
unsigned long lowest_affinity_level); unsigned long lowest_affinity_level);
int (*migrate_info_type)(void); int (*migrate_info_type)(void);
enum psci_conduit conduit; enum arm_smccc_conduit conduit;
enum smccc_version smccc_version; enum smccc_version smccc_version;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment