firmware/psci: use common SMCCC_CONDUIT_*
authorMark Rutland <mark.rutland@arm.com>
Fri, 9 Aug 2019 13:22:43 +0000 (14:22 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 14 Oct 2019 09:55:14 +0000 (10:55 +0100)
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>
drivers/firmware/psci/psci.c
include/linux/psci.h

index eb79708..b3b6c15 100644 (file)
@@ -53,7 +53,7 @@ bool psci_tos_resident_on(int cpu)
 }
 
 struct psci_operations psci_ops = {
-       .conduit = PSCI_CONDUIT_NONE,
+       .conduit = SMCCC_CONDUIT_NONE,
        .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)
                return SMCCC_CONDUIT_NONE;
 
-       switch (psci_ops.conduit) {
-       case PSCI_CONDUIT_SMC:
-               return SMCCC_CONDUIT_SMC;
-       case PSCI_CONDUIT_HVC:
-               return SMCCC_CONDUIT_HVC;
-       default:
-               return SMCCC_CONDUIT_NONE;
-       }
+       return psci_ops.conduit;
 }
 
 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);
 }
 
-static void set_conduit(enum psci_conduit conduit)
+static void set_conduit(enum arm_smccc_conduit conduit)
 {
        switch (conduit) {
-       case PSCI_CONDUIT_HVC:
+       case SMCCC_CONDUIT_HVC:
                invoke_psci_fn = __invoke_psci_fn_hvc;
                break;
-       case PSCI_CONDUIT_SMC:
+       case SMCCC_CONDUIT_SMC:
                invoke_psci_fn = __invoke_psci_fn_smc;
                break;
        default:
@@ -255,9 +248,9 @@ static int get_set_conduit_method(struct device_node *np)
        }
 
        if (!strcmp("hvc", method)) {
-               set_conduit(PSCI_CONDUIT_HVC);
+               set_conduit(SMCCC_CONDUIT_HVC);
        } else if (!strcmp("smc", method)) {
-               set_conduit(PSCI_CONDUIT_SMC);
+               set_conduit(SMCCC_CONDUIT_SMC);
        } else {
                pr_warn("invalid \"method\" property: %s\n", method);
                return -EINVAL;
@@ -598,9 +591,9 @@ int __init psci_acpi_init(void)
        pr_info("probing for conduit method from ACPI.\n");
 
        if (acpi_psci_use_hvc())
-               set_conduit(PSCI_CONDUIT_HVC);
+               set_conduit(SMCCC_CONDUIT_HVC);
        else
-               set_conduit(PSCI_CONDUIT_SMC);
+               set_conduit(SMCCC_CONDUIT_SMC);
 
        return psci_probe();
 }
index e2bacc6..ebe0a88 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef __LINUX_PSCI_H
 #define __LINUX_PSCI_H
 
+#include <linux/arm-smccc.h>
 #include <linux/init.h>
 #include <linux/types.h>
 
@@ -18,12 +19,6 @@ bool psci_tos_resident_on(int cpu);
 int psci_cpu_suspend_enter(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 {
        SMCCC_VERSION_1_0,
        SMCCC_VERSION_1_1,
@@ -38,7 +33,7 @@ struct psci_operations {
        int (*affinity_info)(unsigned long target_affinity,
                        unsigned long lowest_affinity_level);
        int (*migrate_info_type)(void);
-       enum psci_conduit conduit;
+       enum arm_smccc_conduit conduit;
        enum smccc_version smccc_version;
 };