summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/acpica/acpi_quirks13
-rw-r--r--sys/dev/acpica/acpi_timer.c3
-rw-r--r--sys/dev/acpica/acpivar.h2
3 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/acpica/acpi_quirks b/sys/dev/acpica/acpi_quirks
index a20a7a5..0c4d8a3 100644
--- a/sys/dev/acpica/acpi_quirks
+++ b/sys/dev/acpica/acpi_quirks
@@ -53,17 +53,14 @@ oem_rev: FADT <= 0x58582e31
creator_rev: FADT <= 0x31303030
quirks: ACPI_Q_BROKEN
-# ASUS P5A 03/12/99
+# ASUS P5A and P5A-B 03/12/99
+# PR: i386/72450
+# Testing indicates that the ACPI timer runs twice as fast but otherwise
+# this system works normally.
name: ASUS_P5A
oem: FADT "ASUS " "P5A "
oem_rev: FADT <= 0x58582e31
-quirks: ACPI_Q_BROKEN
-
-# ASUS P5A-B
-name: ASUS_P5A_B
-oem: FADT "ASUS " "P5A-B "
-oem_rev: FADT <= 0x58582e31
-quirks: ACPI_Q_BROKEN
+quirks: ACPI_Q_TIMER
# Compaq Armada 3500
name: Compaq_Armada_3500
diff --git a/sys/dev/acpica/acpi_timer.c b/sys/dev/acpica/acpi_timer.c
index abae0c3..1a3a45a 100644
--- a/sys/dev/acpica/acpi_timer.c
+++ b/sys/dev/acpica/acpi_timer.c
@@ -116,7 +116,8 @@ acpi_timer_identify(driver_t *driver, device_t parent)
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
- if (acpi_disabled("timer") || AcpiGbl_FADT == NULL || acpi_timer_dev)
+ if (acpi_disabled("timer") || (acpi_quirks & ACPI_Q_TIMER) ||
+ AcpiGbl_FADT == NULL || acpi_timer_dev)
return_VOID;
if ((dev = BUS_ADD_CHILD(parent, 0, "acpi_timer", 0)) == NULL) {
diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h
index 3722160..88d041c 100644
--- a/sys/dev/acpica/acpivar.h
+++ b/sys/dev/acpica/acpivar.h
@@ -161,8 +161,10 @@ extern struct mtx acpi_mutex;
#define ACPI_INTR_SAPIC 2
/* Quirk flags. */
+extern int acpi_quirks;
#define ACPI_Q_OK 0
#define ACPI_Q_BROKEN (1 << 0) /* Disable ACPI completely. */
+#define ACPI_Q_TIMER (1 << 1) /* Disable ACPI timer. */
/*
* Note that the low ivar values are reserved to provide
OpenPOWER on IntegriCloud