diff options
| author | Nate Lawson <njl@FreeBSD.org> | 2004-10-10 03:15:45 +0000 |
|---|---|---|
| committer | Nate Lawson <njl@FreeBSD.org> | 2004-10-10 03:15:45 +0000 |
| commit | bf6fa6f9e78688b05718de6cedb3cf7ac06941bb (patch) | |
| tree | 1a15235df5357a43f5f189dd9c763498882f9108 /sys/dev | |
| parent | 5d1e011ac870302eca8611e2f7bd4cdc19567c8e (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -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 | 6 |
3 files changed, 13 insertions, 9 deletions
diff --git a/sys/dev/acpica/acpi_quirks b/sys/dev/acpica/acpi_quirks index a20a7a58ffca..0c4d8a3e5fbb 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 abae0c360e25..1a3a45a9b91c 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 811c3edd871e..88d041caac20 100644 --- a/sys/dev/acpica/acpivar.h +++ b/sys/dev/acpica/acpivar.h @@ -98,6 +98,10 @@ struct acpi_prw_data { /* Flags for each device defined in the AML namespace. */ #define ACPI_FLAG_WAKE_ENABLED 0x1 +/* Macros for extracting parts of a PCI address from an _ADR value. */ +#define ACPI_ADR_PCI_SLOT(adr) (((adr) & 0xffff0000) >> 16) +#define ACPI_ADR_PCI_FUNC(adr) ((adr) & 0xffff) + /* * Entry points to ACPI from above are global functions defined in this * file, sysctls, and I/O on the control device. Entry points from below @@ -157,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 |
