git: acpi: sync GPE with FreeBSD 8.0 (and according the acpi api)

YONETANI Tomokazu y0n3t4n1 at
Fri Apr 15 02:52:08 PDT 2011

On Sun, Mar 27, 2011 at 03:43:40AM -0700, Sepherosa Ziehau wrote:
> commit 29b0d8e7b398c0db96e877a1a0ff818fc557d619
> Author: Magliano Andrea <masterblaster at>
> Date:   Thu Feb 24 17:37:44 2011 +0100
>     acpi: sync GPE with FreeBSD 8.0 (and according the acpi api)

After this commit, the power button stopped working (that is, pressing it
doesn't cause the system to enter S5)  on my DELL Inspiron mini10
(about two-year-old netbook with Z530): commenting out this part seems
to fix the problem:

@@ -1627,6 +1628,9 @@ acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status)
 	    if (*search != NULL)
+        if (type == ACPI_TYPE_DEVICE && acpi_parse_prw(handle, &prw) == 0)
+            AcpiSetupGpeForWake(handle, prw.gpe_handle, prw.gpe_bit);
 	     * Create a placeholder device for this node.  Sort the
 	     * placeholder so that the probe/attach passes will run

I noticed that on FreeBSD, acpi_probe_child is passed to AcpiWalkNamespace()
(in acpi_probe_children()) as its 4th argument, or PreOrderVisit, whereas
on DragonFly as 5th, or PostOrderVisit, but moving the argument didn't change
the situation.

I also found that, with or without commenting the above part of the
added code, the following error and warning are in dmesg:

ACPI Error: Could not enable PowerButton event (20110211/evxfevnt-288)
ACPI Warning: Could not enable fixed event 0x2 (20110211/evxface-295)

More information about the Commits mailing list