6.x acpi powerbutton

Nate Lawson nate at root.org
Tue Apr 21 19:03:02 UTC 2009

Andriy Gapon wrote:
> on 17/04/2009 23:30 Nate Lawson said the following:
>> Sure. Perhaps Andriy will pick up this task after reworking the suspend
>> path code for S5? It seems related.
> Oh I think that this would be a much easier and independent task.
> Right now I have the following in my local tree, but I think that it might be
> better to limit the message to S5 state only, so that people with laptops do not
> complain about extra spam.
> diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
> index 8a592d2..f3e0c1f 100644
> --- a/sys/dev/acpica/acpi.c
> +++ b/sys/dev/acpica/acpi.c
> @@ -2169,6 +2169,8 @@ acpi_ReqSleepState(struct acpi_softc *sc, int state)
>      if (state < ACPI_STATE_S1 || state > ACPI_STATE_S5)
>  	return (EINVAL);
> +    printf("acpi: request to enter S%d sleep state\n", state);
> +
>      /* S5 (soft-off) should be entered directly with no waiting. */
>      if (state == ACPI_STATE_S5) {
>  	if (ACPI_SUCCESS(acpi_EnterSleepState(sc, state)))

I don't think that's what they're asking for. The normal shutdown
process creates log entries, even if destined for poweroff. For example,
shutdown -p will log before powering off. acpi_ReqSleepState() can come
through /dev/apm, sysctl, etc. as well as the power button handler.

They are interested in the initiator of the event, the button itself. So
you'd be adding a printf to the power button handler, "power button
pressed". Then the normal shutdown messages would be logged but they
would know the reason. Remember that with sysctl, you can configure
different events to button mappings. So the power button could be used
to initiate a suspend, for example.


More information about the freebsd-acpi mailing list