提交 c647c00f 编写于 作者: A Ard Biesheuvel 提交者: Greg Kroah-Hartman

acpi/arm64: ignore 5.1 FADTs that are reported as 5.0

[ Upstream commit 2af22f3ec3ca452f1e79b967f634708ff01ced8a ]

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.
Acked-by: NSudeep Holla <sudeep.holla@arm.com>
Tested-by: NLee Jones <lee.jones@linaro.org>
Reviewed-by: NGraeme Gregory <graeme.gregory@linaro.org>
Acked-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: NHanjun Guo <guohanjun@huawei.com>
Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
上级 b9f547b7
...@@ -154,10 +154,14 @@ static int __init acpi_fadt_sanity_check(void) ...@@ -154,10 +154,14 @@ static int __init acpi_fadt_sanity_check(void)
*/ */
if (table->revision < 5 || if (table->revision < 5 ||
(table->revision == 5 && fadt->minor_revision < 1)) { (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); 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)) { if (!(fadt->flags & ACPI_FADT_HW_REDUCED)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册