On Wed, Sep 12, 2012 at 09:12:20PM -0500, joshua stein wrote:
> asus ux31a running amd64 sept 11 snapshot, newest bios (happened
> with older one too), panics during acpi configuration.

Does this help?

Index: dev/acpi/acpicpu.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
retrieving revision 1.57
diff -u -p -r1.57 acpicpu.c
--- dev/acpi/acpicpu.c  21 Jul 2010 19:35:15 -0000      1.57
+++ dev/acpi/acpicpu.c  13 Sep 2012 10:18:44 -0000
@@ -201,19 +201,23 @@ acpicpu_set_pdc(struct acpicpu_softc *sc
        static uint8_t cpu_oscuuid[16] = { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
                                           0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70,
                                           0x58, 0x71, 0x39, 0x53 };
-       /* Evaluate _PDC */
-       memset(&cmd, 0, sizeof(cmd));
-       cmd.type = AML_OBJTYPE_BUFFER;
-       cmd.v_buffer = (uint8_t *)&buf;
-       cmd.length = sizeof(buf);
-
-       buf[0] = ACPI_PDC_REVID;
        buf[1] = 1;
        buf[2] = ACPI_PDC_C_C1_HALT | ACPI_PDC_P_FFH | ACPI_PDC_C_C1_FFH
            | ACPI_PDC_C_C2C3_FFH | ACPI_PDC_SMP_P_SWCOORD | ACPI_PDC_SMP_C2C3
            | ACPI_PDC_SMP_C1PT;
 
-       aml_evalname(sc->sc_acpi, sc->sc_devnode, "_PDC", 1, &cmd, &res);
+       /* Look-up the method first, since it's deprecated since ACPI 3.0. */
+       if (aml_searchname(sc->sc_devnode, "_PDC")) {
+               /* Evaluate _PDC */
+               memset(&cmd, 0, sizeof(cmd));
+               cmd.type = AML_OBJTYPE_BUFFER;
+               cmd.v_buffer = (uint8_t *)&buf;
+               cmd.length = sizeof(buf);
+
+               buf[0] = ACPI_PDC_REVID;
+               aml_evalname(sc->sc_acpi, sc->sc_devnode,
+                   "_PDC", 1, &cmd, &res);
+       }
 
        /* Evaluate _OSC */
        memset(&osc_cmd, 0, sizeof(cmd) * 4);

Reply via email to