From: Changbin Du <changbin.du@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>
Cc: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
Changbin Du <changbin.du@gmail.com>
Subject: [PATCH v2 13/24] acpi doc: convert acpi/acpi-lid.txt to rst format
Date: Fri, 29 Mar 2019 08:11:24 +0800 [thread overview]
Message-ID: <20190329001135.15847-14-changbin.du@gmail.com> (raw)
In-Reply-To: <20190329001135.15847-1-changbin.du@gmail.com>
This converts the plain text documentation to reStructuredText format and
add it to Sphinx TOC tree. No essential content change.
Signed-off-by: Changbin Du <changbin.du@gmail.com>
---
.../acpi/{acpi-lid.txt => acpi-lid.rst} | 48 ++++++++++++-------
Documentation/acpi/index.rst | 1 +
2 files changed, 33 insertions(+), 16 deletions(-)
rename Documentation/acpi/{acpi-lid.txt => acpi-lid.rst} (77%)
diff --git a/Documentation/acpi/acpi-lid.txt b/Documentation/acpi/acpi-lid.rst
similarity index 77%
rename from Documentation/acpi/acpi-lid.txt
rename to Documentation/acpi/acpi-lid.rst
index effe7af3a5af..1d19e15a6945 100644
--- a/Documentation/acpi/acpi-lid.txt
+++ b/Documentation/acpi/acpi-lid.rst
@@ -1,25 +1,29 @@
-Special Usage Model of the ACPI Control Method Lid Device
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: <isonum.txt>
-Copyright (C) 2016, Intel Corporation
-Author: Lv Zheng <lv.zheng@intel.com>
+=========================================================
+Special Usage Model of the ACPI Control Method Lid Device
+=========================================================
+:Copyright: |copy| 2016, Intel Corporation
-Abstract:
+:Author: Lv Zheng <lv.zheng@intel.com>
-Platforms containing lids convey lid state (open/close) to OSPMs using a
-control method lid device. To implement this, the AML tables issue
-Notify(lid_device, 0x80) to notify the OSPMs whenever the lid state has
-changed. The _LID control method for the lid device must be implemented to
-report the "current" state of the lid as either "opened" or "closed".
+:Abstract: Platforms containing lids convey lid state (open/close) to OSPMs
+ using a control method lid device. To implement this, the AML tables issue
+ Notify(lid_device, 0x80) to notify the OSPMs whenever the lid state has
+ changed. The _LID control method for the lid device must be implemented to
+ report the "current" state of the lid as either "opened" or "closed".
-For most platforms, both the _LID method and the lid notifications are
-reliable. However, there are exceptions. In order to work with these
-exceptional buggy platforms, special restrictions and expections should be
-taken into account. This document describes the restrictions and the
-expections of the Linux ACPI lid device driver.
+ For most platforms, both the _LID method and the lid notifications are
+ reliable. However, there are exceptions. In order to work with these
+ exceptional buggy platforms, special restrictions and expections should be
+ taken into account. This document describes the restrictions and the
+ expections of the Linux ACPI lid device driver.
1. Restrictions of the returning value of the _LID control method
+=================================================================
The _LID control method is described to return the "current" lid state.
However the word of "current" has ambiguity, some buggy AML tables return
@@ -31,6 +35,7 @@ with cached value, the initial returning value is likely not reliable.
There are platforms always retun "closed" as initial lid state.
2. Restrictions of the lid state change notifications
+=====================================================
There are buggy AML tables never notifying when the lid device state is
changed to "opened". Thus the "opened" notification is not guaranteed. But
@@ -40,17 +45,21 @@ trigger some system power saving operations on Windows. Since it is fully
tested, it is reliable from all AML tables.
3. Expections for the userspace users of the ACPI lid device driver
+===================================================================
The ACPI button driver exports the lid state to the userspace via the
-following file:
+following file::
+
/proc/acpi/button/lid/LID0/state
+
This file actually calls the _LID control method described above. And given
the previous explanation, it is not reliable enough on some platforms. So
it is advised for the userspace program to not to solely rely on this file
to determine the actual lid state.
The ACPI button driver emits the following input event to the userspace:
- SW_LID
+ * SW_LID
+
The ACPI lid device driver is implemented to try to deliver the platform
triggered events to the userspace. However, given the fact that the buggy
firmware cannot make sure "opened"/"closed" events are paired, the ACPI
@@ -59,20 +68,25 @@ button driver uses the following 3 modes in order not to trigger issues.
If the userspace hasn't been prepared to ignore the unreliable "opened"
events and the unreliable initial state notification, Linux users can use
the following kernel parameters to handle the possible issues:
+
A. button.lid_init_state=method:
When this option is specified, the ACPI button driver reports the
initial lid state using the returning value of the _LID control method
and whether the "opened"/"closed" events are paired fully relies on the
firmware implementation.
+
This option can be used to fix some platforms where the returning value
of the _LID control method is reliable but the initial lid state
notification is missing.
+
This option is the default behavior during the period the userspace
isn't ready to handle the buggy AML tables.
+
B. button.lid_init_state=open:
When this option is specified, the ACPI button driver always reports the
initial lid state as "opened" and whether the "opened"/"closed" events
are paired fully relies on the firmware implementation.
+
This may fix some platforms where the returning value of the _LID
control method is not reliable and the initial lid state notification is
missing.
@@ -80,6 +94,7 @@ B. button.lid_init_state=open:
If the userspace has been prepared to ignore the unreliable "opened" events
and the unreliable initial state notification, Linux users should always
use the following kernel parameter:
+
C. button.lid_init_state=ignore:
When this option is specified, the ACPI button driver never reports the
initial lid state and there is a compensation mechanism implemented to
@@ -89,6 +104,7 @@ C. button.lid_init_state=ignore:
notifications can be delivered to the userspace when the lid is actually
opens given that some AML tables do not send "opened" notifications
reliably.
+
In this mode, if everything is correctly implemented by the platform
firmware, the old userspace programs should still work. Otherwise, the
new userspace programs are required to work with the ACPI button driver.
diff --git a/Documentation/acpi/index.rst b/Documentation/acpi/index.rst
index 78f72a525a3f..909f12833692 100644
--- a/Documentation/acpi/index.rst
+++ b/Documentation/acpi/index.rst
@@ -14,6 +14,7 @@ Linux ACPI (Advanced Configuration and Power Interface)
DSD-properties-rules
gpio-properties
i2c-muxes
+ acpi-lid
scan_handlers
method-customizing
initrd_table_override
--
2.20.1
next prev parent reply other threads:[~2019-03-29 0:14 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-29 0:11 [PATCH v2 00/24] Include linux ACPI docs into Sphinx TOC tree Changbin Du
2019-03-29 0:11 ` [PATCH v2 01/24] Documentation: add Linux ACPI to " Changbin Du
2019-03-30 9:51 ` Rafael J. Wysocki
2019-03-31 5:13 ` Changbin Du
2019-03-29 0:11 ` [PATCH v2 02/24] acpi doc: convert acpi/namespace.txt to rst format Changbin Du
2019-03-29 0:11 ` [PATCH v2 03/24] acpi doc: convert acpi/enumeration.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 04/24] acpi doc: convert acpi/osi.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 05/24] acpi doc: convert acpi/linuxized-acpica.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 06/24] acpi doc: convert acpi/scan_handlers.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 07/24] acpi doc: convert acpi/DSD-properties-rules.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 08/24] acpi doc: convert acpi/gpio-properties.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 09/24] acpi doc: convert acpi/method-customizing.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 10/24] acpi doc: convert acpi/initrd_table_override.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 11/24] acpi doc: convert acpi/dsdt-override.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 12/24] acpi doc: convert acpi/i2c-muxes.txt " Changbin Du
2019-03-29 0:11 ` Changbin Du [this message]
2019-03-29 0:11 ` [PATCH v2 14/24] acpi doc: convert acpi/dsd/graph.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 15/24] acpi doc: convert acpi/dsd/data-node-references.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 16/24] acpi doc: convert acpi/debug.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 17/24] acpi doc: convert acpi/method-tracing.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 18/24] acpi doc: convert acpi/aml-debugger.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 19/24] acpi doc: convert acpi/apei/output_format.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 20/24] acpi doc: convert acpi/apei/einj.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 21/24] acpi doc: convert acpi/cppc_sysfs.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 22/24] acpi doc: convert acpi/lpit.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 23/24] acpi doc: convert acpi/ssdt-overlays.txt " Changbin Du
2019-03-29 0:11 ` [PATCH v2 24/24] acpi doc: convert acpi/video_extension.txt " Changbin Du
2019-03-30 9:41 ` [PATCH v2 00/24] Include linux ACPI docs into Sphinx TOC tree Rafael J. Wysocki
2019-04-02 8:25 ` Rafael J. Wysocki
2019-04-03 19:36 ` Jonathan Corbet
2019-04-03 20:40 ` Andy Shevchenko
2019-04-09 16:35 ` Rafael J. Wysocki
2019-04-05 2:44 ` Changbin Du
2019-04-09 16:17 ` Changbin Du
2019-04-09 16:42 ` Rafael J. Wysocki
2019-04-09 21:26 ` Jonathan Corbet
2019-04-09 21:44 ` Rafael J. Wysocki
2019-04-11 15:12 ` Changbin Du
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190329001135.15847-14-changbin.du@gmail.com \
--to=changbin.du@gmail.com \
--cc=corbet@lwn.net \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).