Module Name: src Committed By: jmcneill Date: Sun Dec 13 20:24:26 UTC 2020
Modified Files: src/sys/arch/arm/acpi: acpi_machdep.c src/sys/dev/acpi: acpi.c Log Message: Add MI support for attaching drivers to arbitrary System Description Tables. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/acpi/acpi_machdep.c cvs rdiff -u -r1.287 -r1.288 src/sys/dev/acpi/acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/acpi/acpi_machdep.c diff -u src/sys/arch/arm/acpi/acpi_machdep.c:1.20 src/sys/arch/arm/acpi/acpi_machdep.c:1.21 --- src/sys/arch/arm/acpi/acpi_machdep.c:1.20 Sat Oct 24 07:08:22 2020 +++ src/sys/arch/arm/acpi/acpi_machdep.c Sun Dec 13 20:24:26 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_machdep.c,v 1.20 2020/10/24 07:08:22 skrll Exp $ */ +/* $NetBSD: acpi_machdep.c,v 1.21 2020/12/13 20:24:26 jmcneill Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include "pci.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.20 2020/10/24 07:08:22 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.21 2020/12/13 20:24:26 jmcneill Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -346,8 +346,6 @@ acpi_md_mcfg_bs_map(void *t, bus_addr_t void acpi_md_callback(struct acpi_softc *sc) { - ACPI_TABLE_HEADER *hdrp; - #if NPCI > 0 acpi_md_mcfg_bs_tag = arm_generic_bs_tag; acpi_md_mcfg_bs_tag.bs_map = acpi_md_mcfg_bs_map; @@ -364,9 +362,6 @@ acpi_md_callback(struct acpi_softc *sc) panic("Failed to map GTDT"); acpi_gtdt_walk(acpi_md_gtdt_probe, sc); acpi_gtdt_unmap(); - - if (ACPI_SUCCESS(AcpiGetTable(ACPI_SIG_GTDT, 0, &hdrp))) - config_found_ia(sc->sc_dev, "acpisdtbus", hdrp, NULL); } static const char * const module_hid[] = { Index: src/sys/dev/acpi/acpi.c diff -u src/sys/dev/acpi/acpi.c:1.287 src/sys/dev/acpi/acpi.c:1.288 --- src/sys/dev/acpi/acpi.c:1.287 Mon Dec 7 10:57:41 2020 +++ src/sys/dev/acpi/acpi.c Sun Dec 13 20:24:26 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.287 2020/12/07 10:57:41 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.288 2020/12/13 20:24:26 jmcneill Exp $ */ /*- * Copyright (c) 2003, 2007 The NetBSD Foundation, Inc. @@ -100,7 +100,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.287 2020/12/07 10:57:41 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.288 2020/12/13 20:24:26 jmcneill Exp $"); #include "pci.h" #include "opt_acpi.h" @@ -430,8 +430,9 @@ acpi_attach(device_t parent, device_t se { struct acpi_softc *sc = device_private(self); struct acpibus_attach_args *aa = aux; - ACPI_TABLE_HEADER *rsdt; + ACPI_TABLE_HEADER *rsdt, *hdr; ACPI_STATUS rv; + int i; aprint_naive("\n"); aprint_normal(": Intel ACPICA %08x\n", ACPI_CA_VERSION); @@ -543,6 +544,18 @@ acpi_attach(device_t parent, device_t se acpi_register_fixed_button(sc, ACPI_EVENT_SLEEP_BUTTON); } + /* + * Load drivers that operate on System Description Tables. + */ + for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i) { + rv = AcpiGetTableByIndex(i, &hdr); + if (ACPI_FAILURE(rv)) { + continue; + } + config_found_ia(sc->sc_dev, "acpisdtbus", hdr, NULL); + AcpiPutTable(hdr); + } + acpitimer_init(sc); acpi_config_tree(sc); acpi_sleep_init(sc);