ASUS P5A broken by ACPI black-list
Nate Lawson
nate at root.org
Wed Oct 6 21:27:10 PDT 2004
Kevin Oberman wrote:
> Thanks, John.
>
> This was actually an effort to avoid causing problems for people
> upgrading to V5 with this card. I have no problems with running
> ACPI. But, since it's blacklisted for ACPI and won't work without it,
> people are going to try to upgrade and discover that their systems don't
> work.
>
> I think the best solution is to remove it from the black-list (Nate?)
> and at least let it work. Then people can figure out to use TSC and not
> the ACPI clock.
>
> What would be better is a more granular black-list that simply disabled
> ACPI for features that are broken. Of course, maintaining this would be
> a pain.
Try the attached patch. If it works, please submit your system info
including dmesg and acpidump -t as a PR (i386/???) and I'll commit it.
-Nate
-------------- next part --------------
Index: acpi_quirks
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi_quirks,v
retrieving revision 1.3
diff -u -r1.3 acpi_quirks
--- acpi_quirks 29 Jun 2004 14:32:06 -0000 1.3
+++ acpi_quirks 7 Oct 2004 01:29:53 -0000
@@ -53,17 +53,14 @@
creator_rev: FADT <= 0x31303030
quirks: ACPI_Q_BROKEN
-# ASUS P5A 03/12/99
+# ASUS P5A and P5A-B 03/12/99
+# PR: i386/
+# 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
Index: acpi_timer.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi_timer.c,v
retrieving revision 1.35
diff -u -r1.35 acpi_timer.c
--- acpi_timer.c 22 Jul 2004 05:42:14 -0000 1.35
+++ acpi_timer.c 7 Oct 2004 01:26:17 -0000
@@ -116,7 +116,8 @@
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) {
Index: acpivar.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpivar.h,v
retrieving revision 1.82
diff -u -r1.82 acpivar.h
--- acpivar.h 22 Sep 2004 15:46:16 -0000 1.82
+++ acpivar.h 7 Oct 2004 01:25:40 -0000
@@ -161,8 +161,10 @@
#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
More information about the freebsd-acpi
mailing list