Dell Inspiron 8600
Nate Lawson
nate at root.org
Sat Dec 11 21:59:28 PST 2004
Igor Partola wrote:
> Nate Lawson wrote:
>
>>
>> Yes, this is a deficiency in the current usermode interface. If you
>> look at my web page, I have a description of how to fix this if
>> someone wants to do it. It includes implementing the /dev/apm
>> suspend/standby compatibility ioctls including a timeout interface.
>> See the "Implement X suspend/resume notification" section below.
>>
>> http://www.root.org/~nate/freebsd/acpi-todo.html
>>
> That's a deficiency in the X server though isn't it? Without X running
> this fix would do no good. I thought the problem was in either the
> kernel ACPI implementation or in devd.
>
> I do not claim to be in any degree an expert in this though since I am
> not at all familiar with the inner workings of either. I'm just trying
> to set up this laptop to work nicely with FreeBSD. :).
If I hook up suspend/resume events to just go out devd, there's no
guarantee your usermode code would get run before the system suspends
since devd is not blocking. By implementing the ioctl, we could depend
on apmd running rc.suspend/resume before allowing the requested action
to continue. It has the side effect that another usermode program (X),
can also sit blocking the suspend path but multiple control programs
(apmd, X) would require device cloning or BPF-style /dev/apm0, 1, 2, ...
and the kernel would not be allowed to suspend until everyone voted
"yes". As you can see, this requires some thinking and implementation
work and I'd be happy if someone wanted to do it.
--
Nate
More information about the freebsd-acpi
mailing list