The psci device tree binding mandates keeping older ARM PSCI compatibles
as less-specific compatible entries. Have the barebox fixup comply
with this.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 arch/arm/cpu/psci-of.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/arch/arm/cpu/psci-of.c b/arch/arm/cpu/psci-of.c
index e08a04b36d05..0d25e8b2fdb2 100644
--- a/arch/arm/cpu/psci-of.c
+++ b/arch/arm/cpu/psci-of.c
@@ -10,18 +10,16 @@
 static int of_psci_version_fixup(struct device_node *psci,
                                 unsigned long psci_version)
 {
-       const char *compat;
-
-       if (psci_version >= ARM_PSCI_VER_1_0) {
-               compat = "arm,psci-1.0";
-       } else if (psci_version >= ARM_PSCI_VER_0_2) {
-               compat = "arm,psci-0.2";
-       } else {
-               pr_err("Unsupported PSCI version %ld\n", psci_version);
-               return -EINVAL;
-       }
+       if (psci_version >= ARM_PSCI_VER_1_0)
+               return of_property_write_strings(psci, "compatible",
+                       "arm,psci-1.0", "arm,psci-0.2", "arm,psci", NULL);
+
+       if (psci_version >= ARM_PSCI_VER_0_2)
+               return of_property_write_strings(psci, "compatible",
+                       "arm,psci-0.2", "arm,psci", NULL);
 
-       return of_property_write_string(psci, "compatible", compat);
+       pr_err("Unsupported PSCI version %ld\n", psci_version);
+       return -EINVAL;
 }
 
 int of_psci_fixup(struct device_node *root, unsigned long psci_version)
-- 
2.30.2


Reply via email to