diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/acpica/acpi_quirks | 13 | ||||
-rw-r--r-- | sys/dev/acpica/acpi_timer.c | 3 | ||||
-rw-r--r-- | sys/dev/acpica/acpivar.h | 2 |
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 |