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
This commit is contained in:
Nate Lawson 2004-10-08 17:56:47 +00:00
parent 22d0ab2ef8
commit 4f8c4e4d53
3 changed files with 9 additions and 9 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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