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: Mark Rutland <mark.rutland@arm.com> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:

committed by
Catalin Marinas

parent
6848253dde
commit
a5520eac4d
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
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)
|
|||||||
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 @@
|
|||||||
#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);
|
|||||||
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 {
|
|||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user