diff mbox series

[v10,3/7] Documentation: ACPI: Document _DSE object usage for enum power state

Message ID 20210205132505.20173-4-sakari.ailus@linux.intel.com
State New
Headers show
Series Support running driver's probe for a device powered off | expand

Commit Message

Sakari Ailus Feb. 5, 2021, 1:25 p.m. UTC
Document the use of the _DSE object for setting desirable power state
during probe.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
---
 Documentation/firmware-guide/acpi/index.rst   |  1 +
 .../firmware-guide/acpi/low-power-probe.rst   | 69 +++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 Documentation/firmware-guide/acpi/low-power-probe.rst

Comments

Randy Dunlap Feb. 6, 2021, 12:56 a.m. UTC | #1
On 2/5/21 5:25 AM, Sakari Ailus wrote:
> Document the use of the _DSE object for setting desirable power state
> during probe.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Reviewed-by: Tomasz Figa <tfiga@chromium.org>
> ---
>  Documentation/firmware-guide/acpi/index.rst   |  1 +
>  .../firmware-guide/acpi/low-power-probe.rst   | 69 +++++++++++++++++++
>  2 files changed, 70 insertions(+)
>  create mode 100644 Documentation/firmware-guide/acpi/low-power-probe.rst
> 

> diff --git a/Documentation/firmware-guide/acpi/low-power-probe.rst b/Documentation/firmware-guide/acpi/low-power-probe.rst
> new file mode 100644
> index 0000000000000..b96804d959a6c
> --- /dev/null
> +++ b/Documentation/firmware-guide/acpi/low-power-probe.rst
> @@ -0,0 +1,69 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +======================================
> +Probing I²C devices in low power state
> +======================================
> +
> +Introduction
> +============
> +
> +In some cases it may be preferred to leave certain devices powered off for the
> +entire system bootup if powering on these devices has adverse side effects,
> +beyond just powering on the said device.
> +
> +How it works
> +============
>

Hi,

Please don't use ============ underlines for all section levels.
Here is what Documentation/doc-guide/sphinx.rst says:

Specific guidelines for the kernel documentation
------------------------------------------------

Here are some specific guidelines for the kernel documentation:

* Please don't go overboard with reStructuredText markup. Keep it
  simple. For the most part the documentation should be plain text with
  just enough consistency in formatting that it can be converted to
  other formats.

* Please keep the formatting changes minimal when converting existing
  documentation to reStructuredText.

* Also update the content, not just the formatting, when converting
  documentation.

* Please stick to this order of heading adornments:

  1. ``=`` with overline for document title::

       ==============
       Document title
       ==============

  2. ``=`` for chapters::

       Chapters
       ========

  3. ``-`` for sections::

       Section
       -------

  4. ``~`` for subsections::

       Subsection
       ~~~~~~~~~~

  Although RST doesn't mandate a specific order ("Rather than imposing a fixed
  number and order of section title adornment styles, the order enforced will be
  the order as encountered."), having the higher levels the same overall makes
  it easier to follow the documents.



thanks.
Sakari Ailus Feb. 8, 2021, 8:01 a.m. UTC | #2
Hi Randy,

On Fri, Feb 05, 2021 at 04:56:47PM -0800, Randy Dunlap wrote:
> On 2/5/21 5:25 AM, Sakari Ailus wrote:
> > Document the use of the _DSE object for setting desirable power state
> > during probe.
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > Reviewed-by: Tomasz Figa <tfiga@chromium.org>
> > ---
> >  Documentation/firmware-guide/acpi/index.rst   |  1 +
> >  .../firmware-guide/acpi/low-power-probe.rst   | 69 +++++++++++++++++++
> >  2 files changed, 70 insertions(+)
> >  create mode 100644 Documentation/firmware-guide/acpi/low-power-probe.rst
> > 
> 
> > diff --git a/Documentation/firmware-guide/acpi/low-power-probe.rst b/Documentation/firmware-guide/acpi/low-power-probe.rst
> > new file mode 100644
> > index 0000000000000..b96804d959a6c
> > --- /dev/null
> > +++ b/Documentation/firmware-guide/acpi/low-power-probe.rst
> > @@ -0,0 +1,69 @@
> > +.. SPDX-License-Identifier: GPL-2.0
> > +
> > +======================================
> > +Probing I²C devices in low power state
> > +======================================
> > +
> > +Introduction
> > +============
> > +
> > +In some cases it may be preferred to leave certain devices powered off for the
> > +entire system bootup if powering on these devices has adverse side effects,
> > +beyond just powering on the said device.
> > +
> > +How it works
> > +============
> >
> 
> Hi,
> 
> Please don't use ============ underlines for all section levels.

The sections under the title are intended to be on the same level.
Randy Dunlap Feb. 8, 2021, 3:52 p.m. UTC | #3
On 2/8/21 12:01 AM, Sakari Ailus wrote:
> Hi Randy,
> 
> On Fri, Feb 05, 2021 at 04:56:47PM -0800, Randy Dunlap wrote:
>> On 2/5/21 5:25 AM, Sakari Ailus wrote:
>>> Document the use of the _DSE object for setting desirable power state
>>> during probe.
>>>
>>> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
>>> Reviewed-by: Tomasz Figa <tfiga@chromium.org>
>>> ---
>>>  Documentation/firmware-guide/acpi/index.rst   |  1 +
>>>  .../firmware-guide/acpi/low-power-probe.rst   | 69 +++++++++++++++++++
>>>  2 files changed, 70 insertions(+)
>>>  create mode 100644 Documentation/firmware-guide/acpi/low-power-probe.rst
>>>
>>
>>> diff --git a/Documentation/firmware-guide/acpi/low-power-probe.rst b/Documentation/firmware-guide/acpi/low-power-probe.rst
>>> new file mode 100644
>>> index 0000000000000..b96804d959a6c
>>> --- /dev/null
>>> +++ b/Documentation/firmware-guide/acpi/low-power-probe.rst
>>> @@ -0,0 +1,69 @@
>>> +.. SPDX-License-Identifier: GPL-2.0
>>> +
>>> +======================================
>>> +Probing I²C devices in low power state
>>> +======================================
>>> +
>>> +Introduction
>>> +============
>>> +
>>> +In some cases it may be preferred to leave certain devices powered off for the
>>> +entire system bootup if powering on these devices has adverse side effects,
>>> +beyond just powering on the said device.
>>> +
>>> +How it works
>>> +============
>>>
>>
>> Hi,
>>
>> Please don't use ============ underlines for all section levels.
> 
> The sections under the title are intended to be on the same level.
> 

Oops. My bad. Sorry about that.
diff mbox series

Patch

diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
index f72b5f1769fb2..d02712acccbc0 100644
--- a/Documentation/firmware-guide/acpi/index.rst
+++ b/Documentation/firmware-guide/acpi/index.rst
@@ -25,5 +25,6 @@  ACPI Support
    acpi-lid
    lpit
    video_extension
+   low-power-probe
    extcon-intel-int3496
    intel-pmc-mux
diff --git a/Documentation/firmware-guide/acpi/low-power-probe.rst b/Documentation/firmware-guide/acpi/low-power-probe.rst
new file mode 100644
index 0000000000000..b96804d959a6c
--- /dev/null
+++ b/Documentation/firmware-guide/acpi/low-power-probe.rst
@@ -0,0 +1,69 @@ 
+.. SPDX-License-Identifier: GPL-2.0
+
+======================================
+Probing I²C devices in low power state
+======================================
+
+Introduction
+============
+
+In some cases it may be preferred to leave certain devices powered off for the
+entire system bootup if powering on these devices has adverse side effects,
+beyond just powering on the said device.
+
+How it works
+============
+
+The _DSE (Device State for Enumeration) object that evaluates to integer 0 may
+be used to tell Linux the highest allowed D state for a device during probe. If
+the driver indicates its support for this by setting the
+I2C_DRV_FL_ALLOW_LOW_POWER_PROBE flag in struct i2c_driver.flags field and the
+_DSE object evaluates to integer higher than the D state of the device, the
+device will not be powered on (put in D0 state) for probe.
+
+The D states and thus also the allowed values for _DSE are listed below. Refer
+to [1] for more information on device power states.
+
+.. code-block:: text
+
+	Number	State	Description
+	0	D0	Device fully powered on
+	1	D1
+	2	D2
+	3	D3hot
+	4	D3cold	Off
+
+The downside is that as the device is not powered on, even if there's a problem
+with the device, the driver likely probes just fine but the first user will
+find out the device doesn't work, instead of a failure at probe time. This
+feature should thus be used sparingly.
+
+References
+==========
+
+[1] https://uefi.org/specifications/ACPI/6.4/02_Definition_of_Terms/Definition_of_Terms.html#device-power-state-definitions
+
+Example
+=======
+
+An ASL example describing an ACPI device using _DSE object to tell Operating
+System the device should remain powered off during probe looks like this. Some
+objects not relevant from the example point of view have been omitted.
+
+.. code-block:: text
+
+	Device (CAM0)
+        {
+		Name (_HID, "SONY319A")
+		Name (_UID, Zero)
+		Name (_CRS, ResourceTemplate ()
+		{
+			I2cSerialBus(0x0020, ControllerInitiated, 0x00061A80,
+				     AddressingMode7Bit, "\\_SB.PCI0.I2C0",
+				     0x00, ResourceConsumer)
+		})
+		Name (_DSE, 0, NotSerialized)
+		{
+			Return (0x4)
+                }
+	}