Revert "x86: Move FACP table into separate functions"
Before the culprit patch (see BugLink for the details):
=> acpi list
Name Base Size Detail
---- -------- ----- ------
RSDP 000e4500 24 v02 U-BOOT
RSDT 000e4530 38 v01 U-BOOT U-BOOTBL 20220401 INTL 0
XSDT 000e45e0 4c v01 U-BOOT U-BOOTBL 20220401 INTL 0
CSRT 000e5490 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0
FACP 000e54f0 114 v06 U-BOOT U-BOOTBL 20220401 INTL 0
DSDT 000e4780 c06 v02 U-BOOT U-BOOTBL 10000 INTL 20200925
FACS 000e4740 40
MCFG 000e5610 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0
SPCR 000e5650 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0
APIC 000e56a0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0
After the culprit patch:
=> acpi list
Name Base Size Detail
---- -------- ----- ------
RSDP 000e4500 24 v02 U-BOOT
RSDT 000e4530 34 v01 U-BOOT U-BOOTBL 20220401 INTL 0
XSDT 000e45e0 44 v01 U-BOOT U-BOOTBL 20220401 INTL 0
CSRT 000e53a0 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0
MCFG 000e5520 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0
SPCR 000e5560 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0
APIC 000e55b0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0
As a result Linux kernel can't find mandatory tables and fails
to boot.
Hence, revert it for good.
This reverts commit 379d3c1fd6aa490b1ad5697525cfc89b615cf25a.
BugLink: https://lore.kernel.org/all/20220131225930.GJ7515@bill-the-cat/
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
diff --git a/arch/x86/cpu/apollolake/acpi.c b/arch/x86/cpu/apollolake/acpi.c
index a3dd737..fd21c0b 100644
--- a/arch/x86/cpu/apollolake/acpi.c
+++ b/arch/x86/cpu/apollolake/acpi.c
@@ -146,25 +146,16 @@
fadt->x_pm_tmr_blk.addrl = IOMAP_ACPI_BASE + PM1_TMR;
}
-static int apl_write_fadt(struct acpi_ctx *ctx, const struct acpi_writer *entry)
+void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
+ void *dsdt)
{
- struct acpi_table_header *header;
- struct acpi_fadt *fadt;
+ struct acpi_table_header *header = &fadt->header;
- fadt = ctx->current;
- acpi_fadt_common(fadt, ctx->facs, ctx->dsdt);
+ acpi_fadt_common(fadt, facs, dsdt);
intel_acpi_fill_fadt(fadt);
fill_fadt(fadt);
- header = &fadt->header;
header->checksum = table_compute_checksum(fadt, header->length);
-
- acpi_add_table(ctx, fadt);
-
- acpi_inc(ctx, sizeof(struct acpi_fadt));
-
- return 0;
}
-ACPI_WRITER(5fadt, "FACS", apl_write_fadt, 0);
int apl_acpi_fill_dmar(struct acpi_ctx *ctx)
{