summaryrefslogtreecommitdiffstats
path: root/arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2019-07-09 13:27:52 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2019-07-09 13:27:52 -0500
commit5c2ab4e801af208f640dc06a07e6a55cca2c1d74 (patch)
tree84129275b592f56f6dd9be17dd0cd8ae4ae1c680 /arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
parentef17ee63686106badd3fdd7381f0038b6d330826 (diff)
downloadkernel-5c2ab4e801af208f640dc06a07e6a55cca2c1d74.tar.gz
kernel-5c2ab4e801af208f640dc06a07e6a55cca2c1d74.tar.xz
kernel-5c2ab4e801af208f640dc06a07e6a55cca2c1d74.zip
Linux v5.2.0
Diffstat (limited to 'arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch')
-rw-r--r--arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch b/arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
new file mode 100644
index 000000000..6cf0ba926
--- /dev/null
+++ b/arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
@@ -0,0 +1,41 @@
+From a7edc17544709d20f800dc0898096365a3d68613 Mon Sep 17 00:00:00 2001
+From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Date: Sun, 2 Jun 2019 16:36:15 +0200
+Subject: [PATCH] acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
+
+Some Qualcomm Snapdragon based laptops built to run Microsoft Windows
+are clearly ACPI 5.1 based, given that that is the first ACPI revision
+that supports ARM, and introduced the FADT 'arm_boot_flags' field,
+which has a non-zero field on those systems.
+
+So in these cases, infer from the ARM boot flags that the FADT must be
+5.1 or later, and treat it as 5.1.
+
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ arch/arm64/kernel/acpi.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
+index 803f0494dd3e3..7722e85fb69c3 100644
+--- a/arch/arm64/kernel/acpi.c
++++ b/arch/arm64/kernel/acpi.c
+@@ -155,10 +155,14 @@ static int __init acpi_fadt_sanity_check(void)
+ */
+ if (table->revision < 5 ||
+ (table->revision == 5 && fadt->minor_revision < 1)) {
+- pr_err("Unsupported FADT revision %d.%d, should be 5.1+\n",
++ pr_err(FW_BUG "Unsupported FADT revision %d.%d, should be 5.1+\n",
+ table->revision, fadt->minor_revision);
+- ret = -EINVAL;
+- goto out;
++
++ if (!fadt->arm_boot_flags) {
++ ret = -EINVAL;
++ goto out;
++ }
++ pr_err("FADT has ARM boot flags set, assuming 5.1\n");
+ }
+
+ if (!(fadt->flags & ACPI_FADT_HW_REDUCED)) {
+