Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jan 2006 11:52:42 -0800
From:      Nate Lawson <nate@root.org>
To:        Manfred Lotz <manfred.lotz@arcor.de>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: suspend/resume event
Message-ID:  <43D13F8A.8000802@root.org>
In-Reply-To: <20060120200410.a05870c1.manfred.lotz@arcor.de>
References:  <20060120200410.a05870c1.manfred.lotz@arcor.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Manfred Lotz wrote:
> Hi there,
> With my Samsung X20 1730 suspend /resume works fine when doing
> acpiconf -s 3. I added /etc/rc.d/moused restart in /etc/rc.resume and
> the touchpad mouse gets awake after resuming. That's great.
> 
> However when closing the lid (I set hw.acpi.lid_switch_state=S3) and
> then pressing the power button although suspend/resume works
> fine the mouse won't get restarted. This means /etc/rc.resume and
> presumably /etc/rc.suspend won't get called in this case.
> 
> Same happen when pressing Fn-ESC the key for suspend.
> 
> How can I make sure /etc/rc.suspend as well as /etc/rc.resuem gets
> called in the "non-acpiconf" cases?

That's an implementation problem.  I think the right approach is to add 
a resume notification to devd.  That should be easy to do and I may look 
into it this weekend if no one submits a patch first.

It's harder to hook in the suspend path because we'd have to add a new 
path:  kernel notifies userland, waits for userland to complete 
rc.suspend, userland sends "go ahead" to kernel, and suspend actually 
happens.  apm had that but there's a problem if userland is not 
responsive.  The idea I came up with was to have an absolute timeout 
where after 30 seconds or something, the kernel gives up on userland and 
suspends anyway.  I started work on a patch to do this a while ago but 
it had some bugs I never got around to fixing.  One problem was multiple 
listeners (X11 server, rc.suspend, etc.) -- do you wait for all of them 
to ack the event before suspending?  I think so, but it's difficult to 
get all the cases right.

If someone wants to help finish this work, I'd be happy to supply the 
half-done patch.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43D13F8A.8000802>