Skip to content

Commit a5520ea

Browse files
mrutland-armctmarinas
authored andcommitted
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>
1 parent 6848253 commit a5520ea

File tree

2 files changed

+11
-23
lines changed

2 files changed

+11
-23
lines changed

drivers/firmware/psci/psci.c

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ bool psci_tos_resident_on(int cpu)
5353
}
5454

5555
struct psci_operations psci_ops = {
56-
.conduit = PSCI_CONDUIT_NONE,
56+
.conduit = SMCCC_CONDUIT_NONE,
5757
.smccc_version = SMCCC_VERSION_1_0,
5858
};
5959

@@ -62,14 +62,7 @@ enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
6262
if (psci_ops.smccc_version < SMCCC_VERSION_1_1)
6363
return SMCCC_CONDUIT_NONE;
6464

65-
switch (psci_ops.conduit) {
66-
case PSCI_CONDUIT_SMC:
67-
return SMCCC_CONDUIT_SMC;
68-
case PSCI_CONDUIT_HVC:
69-
return SMCCC_CONDUIT_HVC;
70-
default:
71-
return SMCCC_CONDUIT_NONE;
72-
}
65+
return psci_ops.conduit;
7366
}
7467

7568
typedef unsigned long (psci_fn)(unsigned long, unsigned long,
@@ -227,13 +220,13 @@ static unsigned long psci_migrate_info_up_cpu(void)
227220
0, 0, 0);
228221
}
229222

230-
static void set_conduit(enum psci_conduit conduit)
223+
static void set_conduit(enum arm_smccc_conduit conduit)
231224
{
232225
switch (conduit) {
233-
case PSCI_CONDUIT_HVC:
226+
case SMCCC_CONDUIT_HVC:
234227
invoke_psci_fn = __invoke_psci_fn_hvc;
235228
break;
236-
case PSCI_CONDUIT_SMC:
229+
case SMCCC_CONDUIT_SMC:
237230
invoke_psci_fn = __invoke_psci_fn_smc;
238231
break;
239232
default:
@@ -255,9 +248,9 @@ static int get_set_conduit_method(struct device_node *np)
255248
}
256249

257250
if (!strcmp("hvc", method)) {
258-
set_conduit(PSCI_CONDUIT_HVC);
251+
set_conduit(SMCCC_CONDUIT_HVC);
259252
} else if (!strcmp("smc", method)) {
260-
set_conduit(PSCI_CONDUIT_SMC);
253+
set_conduit(SMCCC_CONDUIT_SMC);
261254
} else {
262255
pr_warn("invalid \"method\" property: %s\n", method);
263256
return -EINVAL;
@@ -598,9 +591,9 @@ int __init psci_acpi_init(void)
598591
pr_info("probing for conduit method from ACPI.\n");
599592

600593
if (acpi_psci_use_hvc())
601-
set_conduit(PSCI_CONDUIT_HVC);
594+
set_conduit(SMCCC_CONDUIT_HVC);
602595
else
603-
set_conduit(PSCI_CONDUIT_SMC);
596+
set_conduit(SMCCC_CONDUIT_SMC);
604597

605598
return psci_probe();
606599
}

include/linux/psci.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#ifndef __LINUX_PSCI_H
88
#define __LINUX_PSCI_H
99

10+
#include <linux/arm-smccc.h>
1011
#include <linux/init.h>
1112
#include <linux/types.h>
1213

@@ -18,12 +19,6 @@ bool psci_tos_resident_on(int cpu);
1819
int psci_cpu_suspend_enter(u32 state);
1920
bool psci_power_state_is_valid(u32 state);
2021

21-
enum psci_conduit {
22-
PSCI_CONDUIT_NONE,
23-
PSCI_CONDUIT_SMC,
24-
PSCI_CONDUIT_HVC,
25-
};
26-
2722
enum smccc_version {
2823
SMCCC_VERSION_1_0,
2924
SMCCC_VERSION_1_1,
@@ -38,7 +33,7 @@ struct psci_operations {
3833
int (*affinity_info)(unsigned long target_affinity,
3934
unsigned long lowest_affinity_level);
4035
int (*migrate_info_type)(void);
41-
enum psci_conduit conduit;
36+
enum arm_smccc_conduit conduit;
4237
enum smccc_version smccc_version;
4338
};
4439

0 commit comments

Comments
 (0)