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