Thread (129 messages) 129 messages, 17 authors, 2014-08-21

[PATCH 06/19] ARM64 / ACPI: Parse FADT table to get PSCI flags for PSCI init

From: Hanjun Guo <hidden>
Date: 2014-07-31 03:54:33
Also in: linux-acpi, lkml

On 2014-7-30 0:40, Sudeep Holla wrote:
[...]
quoted
+/* 1 to indicate PSCI is implemented */
+int acpi_psci_present;
+
+/* 1 to indicate HVC must be used instead of SMC as the PSCI conduit */
+int acpi_psci_use_hvc;
+
These can be boolean but can be removed IMO, see below.
quoted
  /*
   * __acpi_map_table() will be called before page_init(), so early_ioremap()
   * or early_memremap() should be called here to for ACPI table mapping.
@@ -54,6 +62,33 @@ void __init __acpi_unmap_table(char *map, unsigned long size)
      early_iounmap(map, size);
  }

+static int __init acpi_parse_fadt(struct acpi_table_header *table)
+{
+    struct acpi_table_fadt *fadt = (struct acpi_table_fadt *)table;
+
+    /*
+     * Revision in table header is the FADT Major version,
+     * and there is a minor version of FADT which was introduced
+     * by ACPI 5.1, we only deal with ACPI 5.1 or higher version
+     * to get arm boot flags, or we will disable ACPI.
+     */
+    if (table->revision < 5 || fadt->minor_version < 1) {
+        pr_info("FADT version is %d.%d, no PSCI support, should be 5.1 or
higher\n",
+            table->revision, fadt->minor_version);
+        acpi_psci_present = 0;
+        disable_acpi();
+        return -EINVAL;
+    }
+
+    if (acpi_gbl_FADT.arm_boot_flags & ACPI_FADT_PSCI_COMPLIANT)
+        acpi_psci_present = 1;
+
+    if (acpi_gbl_FADT.arm_boot_flags & ACPI_FADT_PSCI_USE_HVC)
+        acpi_psci_use_hvc = 1;
+
Why not make this macros instead of global variables as I suggested in
previous version. acpi_gbl_FADT is already global and you can avoid
creating new one especially they are just used on boot/init.
Ok, it makes sense to me, I will update it in next version.

Thanks
Hanjun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help