diff options
author | njl <njl@FreeBSD.org> | 2004-10-08 17:56:47 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-10-08 17:56:47 +0000 |
commit | a21b1cf36444909647d4f1e3ffa4fad0ce8f9393 (patch) | |
tree | 6278a5605d9cd753b3842489da17f30eca25e380 /sys | |
parent | b5e56e2ca94c36a11a6f85a78382b218156e054b (diff) | |
download | FreeBSD-src-a21b1cf36444909647d4f1e3ffa4fad0ce8f9393.zip FreeBSD-src-a21b1cf36444909647d4f1e3ffa4fad0ce8f9393.tar.gz |
Update a quirk for the ASUS P5A to disable the timer. It appears to work fine
with acpi but the timer runs twice as fast. Note that the main problem
(system doesn't work properly with acpi disabled) should be fixed separately.
Changes:
* Add a quirk to disable the timer
* Merge the P5A and P5A-B quirks since they appear to be based on the
same ASL.
PR: i386/72450
Tested by: Kevin Oberman <oberman es.net>
MFC after: 3 days
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 |