Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Aug 2018 23:00:23 +0100
From:      Johannes Lundberg <johalun0@gmail.com>
To:        cem@freebsd.org
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: acpiconf -s 3 does not call acpi sleep event handlers
Message-ID:  <CAECmPwvT-WcTPY7hKMxavbvk6orw3fanLe%2B7zZhqSU-5bkRCxw@mail.gmail.com>
In-Reply-To: <CAG6CVpUuRsjoN2vHHNMwFVgk54tYMoC457Q%2BjX_UK9%2BPt%2BqReA@mail.gmail.com>
References:  <CAECmPwt7sU4TUNiLuCvvJpkuO8WV_D7qTzK_fXtUzOQZzEijiQ@mail.gmail.com> <CAG6CVpVtzr=7rtVwPh6EDSk2=%2BH_dsSxb=HW=VvDO4t3NLpRew@mail.gmail.com> <CAECmPwu16DAh5kp=nOLjjSttVaEjZheNzfPkf0vO-U3-Xk0jtg@mail.gmail.com> <CAG6CVpUuRsjoN2vHHNMwFVgk54tYMoC457Q%2BjX_UK9%2BPt%2BqReA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Aug 1, 2018 at 22:55 Conrad Meyer <cem@freebsd.org> wrote:

> ReqSleepState is the routine that takes care of suspend, not the
> eventhandler.  I'm not sure what difference the proposed change is
> supposed to make.


Listeners to acpi_sleep_event don=E2=80=99t get the event when suspending w=
ith
acpiconf (but they do when suspending via lid or sleep button).

I think one would expect the same behavior when suspending via command line
or physical switch.



>
> Best,
> Conrad
>
> On Wed, Aug 1, 2018 at 2:48 PM, Johannes Lundberg <johalun0@gmail.com>
> wrote:
> >
> >
> > On Wed, Aug 1, 2018 at 9:15 PM Conrad Meyer <cem@freebsd.org> wrote:
> >>
> >> It seems deliberate, although the commit message does not call it out
> >> and the event is perhaps poorly named.  The event currently indicates
> >> that the lid was closed.  And the final registered eventhandler for
> >> the event calls ReqSleepState.
> >>
> >> The ReqSleepState routine, as well as the userspace ioctl that
> >> 'acpiconf -s' uses (which just invokes ReqSleepState directly, rather
> >> than invoking the acpi sleep event), were introduced together in
> >> r170976.
> >>
> >
> > Unless there's a way of calling suspend properly from the cli (zzz uses
> > acpiconf...) maybe something like this makes more sense to get the same
> > behavior on for example lid close as zzz or acpiconf -s 3? (untested)
> >
> > diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
> > index c1bfd880c89..87b506d6bf5 100644
> > --- a/sys/dev/acpica/acpi.c
> > +++ b/sys/dev/acpica/acpi.c
> > @@ -3700,7 +3700,8 @@ acpiioctl(struct cdev *dev, u_long cmd, caddr_t
> addr,
> > int flag, struct thread *t
> >      case ACPIIO_REQSLPSTATE:
> >         state =3D *(int *)addr;
> >         if (state !=3D ACPI_STATE_S5)
> > -           return (acpi_ReqSleepState(sc, state));
> > +               return ACPI_SUCCESS(AcpiOsExecute(OSL_NOTIFY_HANDLER,
> > +                       acpi_invoke_sleep_eventhandler, &state)) ? 0 :
> > ENXIO;
> >         device_printf(sc->acpi_dev, "power off via acpi ioctl not
> > supported\n");
> >         error =3D EOPNOTSUPP;
> >         break;
> >
> >
> >>
> >> Best,
> >> Conrad
> >>
> >> On Wed, Aug 1, 2018 at 8:05 AM, Johannes Lundberg <johalun0@gmail.com>
> >> wrote:
> >> > Hi
> >> >
> >> > As the title says, callbacks registered with
> >> > EVENTHANDLER_REGISTER(acpi_sleep_event, ....
> >> > does not get called when calling acpiconf -s 3.
> >> > They do however, when suspending with lid or sleep button.
> >> >
> >> > Is this deliberate or an oversight?
> >> >
> >> > Cheers
> >> > _______________________________________________
> >> > freebsd-current@freebsd.org mailing list
> >> > https://lists.freebsd.org/mailman/listinfo/freebsd-current
> >> > To unsubscribe, send any mail to
> >> > "freebsd-current-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAECmPwvT-WcTPY7hKMxavbvk6orw3fanLe%2B7zZhqSU-5bkRCxw>