Bug 222691 - Thinkpad t440p - lid sysctl gets confused
Summary: Thinkpad t440p - lid sysctl gets confused
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bugs mailing list
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2017-09-29 16:23 UTC by Andy
Modified: 2019-09-12 09:07 UTC (History)
1 user (show)

See Also:


Attachments
AC adapter state change script to put the notebook into sleep on ac disconnect, but only if the lid is closed. (1.10 KB, application/x-shellscript)
2017-09-29 16:23 UTC, Andy
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andy 2017-09-29 16:23:14 UTC
Created attachment 186804 [details]
AC adapter state change script to put the notebook into sleep on ac disconnect, but only if the lid is closed.

I have created a small acpi script (attached) to monitor the ac line and suspend the machine if the ac line is removed while the lid is closed.  This script complements the lid script that suspends the machine if the lid is closed on battery.

I have found, however, that the value of the lid sysctl changes without a hardware state change.  My guess is that there is some condition where the lid is closed or opened that the sysctl doesn't update.

For example, my log shows:
 ACLINE Event.  acline devd value:\'0x01\', lid sysctl:\'0\'.
 AC Power inserted when lid was closed. No need for sleep.

However, the lid was open.  Typically ``sysctl -n dev.acpi_lid.0.state'' is 0 for closed lid, 1 for open.  I actually don't care what the value is, as long as it remains consistent, I guess the devd side of things stays constant (which is even more confusing) - the event 0x01 = open event, 0x00 = close event.
Comment 1 Thomas Merkel 2019-09-12 09:07:58 UTC
I've the same issue, steps to reproduce:

1. LID open 'sysctl -n dev.acpi_lid.0.state = 1'
2. LID closed 'sysctl -n dev.acpi_lid.0.state = 0'
3. Sending device to suspend
4. LID open (device resume from suspend automatically) 'sysctl -n dev.acpi_lid.0.state = 0'

Expected:

On LID open after resume the value should be 1.