Page MenuHomeFreeBSD
Paste P622

Command-Line Input
ActivePublic

Authored by jhb on Jan 9 2024, 6:49 PM.
Tags
None
Referenced Files
F74548702: Command-Line Input
Jan 9 2024, 6:49 PM
Subscribers
None
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 22d2b10ff905..9196c446ae80 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -1376,11 +1376,9 @@ acpi_reserve_resources(device_t dev)
struct resource_list_entry *rle;
struct resource_list *rl;
struct acpi_device *ad;
- struct acpi_softc *sc;
device_t *children;
int child_count, i;
- sc = device_get_softc(dev);
if (device_get_children(dev, &children, &child_count) != 0)
return;
for (i = 0; i < child_count; i++) {
@@ -1422,14 +1420,12 @@ acpi_reserve_resources(device_t dev)
}
}
free(children, M_TEMP);
- sc->acpi_resources_reserved = 1;
}
static int
acpi_set_resource(device_t dev, device_t child, int type, int rid,
rman_res_t start, rman_res_t count)
{
- struct acpi_softc *sc = device_get_softc(dev);
struct acpi_device *ad = device_get_ivars(child);
struct resource_list *rl = &ad->ad_rl;
ACPI_DEVICE_INFO *devinfo;
@@ -1485,38 +1481,6 @@ acpi_set_resource(device_t dev, device_t child, int type, int rid,
/* Add the resource. */
end = (start + count - 1);
resource_list_add(rl, type, rid, start, end, count);
-
- /* Don't reserve resources until the system resources are allocated. */
- if (!sc->acpi_resources_reserved)
- return (0);
-
- /* Don't reserve system resources. */
- if (ACPI_ID_PROBE(dev, child, sysres_ids, NULL) <= 0)
- return (0);
-
- /*
- * Don't reserve IRQ resources. There are many sticky things to
- * get right otherwise (e.g. IRQs for psm, atkbd, and HPET when
- * using legacy routing).
- */
- if (type == SYS_RES_IRQ)
- return (0);
-
- /*
- * Don't reserve resources for CPU devices. Some of these
- * resources need to be allocated as shareable, but reservations
- * are always non-shareable.
- */
- if (device_get_devclass(child) == devclass_find("cpu"))
- return (0);
-
- /*
- * Reserve the resource.
- *
- * XXX: Ignores failure for now. Failure here is probably a
- * BIOS/firmware bug?
- */
- resource_list_reserve(rl, dev, child, type, &rid, start, end, count, 0);
return (0);
}
diff --git a/sys/dev/acpica/acpi_apei.c b/sys/dev/acpica/acpi_apei.c
index 6a3d9d10edd4..9cfd46c97430 100644
--- a/sys/dev/acpica/acpi_apei.c
+++ b/sys/dev/acpica/acpi_apei.c
@@ -711,7 +711,7 @@ apei_attach(device_t dev)
if (ge->v1.Header.Type == ACPI_HEST_TYPE_GENERIC_ERROR_V2) {
ge->res2_rid = rid++;
acpi_bus_alloc_gas(dev, &ge->res2_type, &ge->res2_rid,
- &ge->v2.ReadAckRegister, &ge->res2, 0);
+ &ge->v2.ReadAckRegister, &ge->res2, RF_SHAREABLE);
if (ge->res2 == NULL)
device_printf(dev, "Can't allocate ack resource.\n");
}
diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h
index 5be0939ee6bb..4d76a77cdbf8 100644
--- a/sys/dev/acpica/acpivar.h
+++ b/sys/dev/acpica/acpivar.h
@@ -55,7 +55,6 @@ struct acpi_softc {
int acpi_enabled;
int acpi_sstate;
int acpi_sleep_disabled;
- int acpi_resources_reserved;
struct sysctl_ctx_list acpi_sysctl_ctx;
struct sysctl_oid *acpi_sysctl_tree;

Event Timeline