diff mbox series

[v7,6/6] Documentation: ACPI: Document allow-low-power-probe _DSD property

Message ID 20200901210333.8462-7-sakari.ailus@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series Support running driver's probe for a device powered off | expand

Commit Message

Sakari Ailus Sept. 1, 2020, 9:03 p.m. UTC
Document the probe-low-power _DSD property and how it is used with I²C
drivers.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 .../acpi/dsd/allow-low-power-probe.rst        | 28 +++++++++++++++++++
 Documentation/firmware-guide/acpi/index.rst   |  1 +
 2 files changed, 29 insertions(+)
 create mode 100644 Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst

Comments

Rafael J. Wysocki Sept. 2, 2020, 3:57 p.m. UTC | #1
On Tue, Sep 1, 2020 at 11:03 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> Document the probe-low-power _DSD property and how it is used with I²C
> drivers.

I would reorder the series to make this go right after the [1/6] or
maybe even fold it into that patch.

The point is that the changes in [1/6] clearly depend on the property
defined here.

> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
>  .../acpi/dsd/allow-low-power-probe.rst        | 28 +++++++++++++++++++
>  Documentation/firmware-guide/acpi/index.rst   |  1 +
>  2 files changed, 29 insertions(+)
>  create mode 100644 Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
>
> diff --git a/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> new file mode 100644
> index 0000000000000..6fcc89162b898
> --- /dev/null
> +++ b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> @@ -0,0 +1,28 @@
> +.. 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. Linux recognizes the _DSD property
> +"allow-low-power-probe" that can be used for this purpose.

It would be good to refer to the document defining the generic _DSD
properties mechanism and the GUID used for that from here.

The meaning of  "_DSD property" may not be entirely clear to the
reader as it stands.

And maybe call the property "i2c-allow-low-power-probe" or similar, to
indicate that it is specific to i2c.

> +
> +How it works
> +============
> +
> +The property "allow-low-power-probe" boolean property may be used to tell Linux

"boolean device property" ?

> +that the I²C framework should instruct the kernel ACPI framework to leave the
> +device in the low power state. 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 "allow-low-power-probe" property is present, the device will not
> +be powered on for probe.
> +
> +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.

It would be good to give an ASL example with this property provided.

> diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
> index ad3b5afdae77e..0070fcde9e669 100644
> --- a/Documentation/firmware-guide/acpi/index.rst
> +++ b/Documentation/firmware-guide/acpi/index.rst
> @@ -11,6 +11,7 @@ ACPI Support
>     dsd/graph
>     dsd/data-node-references
>     dsd/leds
> +   dsd/allow-low-power-probe
>     enumeration
>     osi
>     method-customizing
> --
Sakari Ailus Sept. 2, 2020, 4:31 p.m. UTC | #2
Hi Rafael,

Thank you for the review.

On Wed, Sep 02, 2020 at 05:57:01PM +0200, Rafael J. Wysocki wrote:
> On Tue, Sep 1, 2020 at 11:03 PM Sakari Ailus
> <sakari.ailus@linux.intel.com> wrote:
> >
> > Document the probe-low-power _DSD property and how it is used with I²C
> > drivers.
> 
> I would reorder the series to make this go right after the [1/6] or
> maybe even fold it into that patch.
> 
> The point is that the changes in [1/6] clearly depend on the property
> defined here.

Ack.

> 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
> >  .../acpi/dsd/allow-low-power-probe.rst        | 28 +++++++++++++++++++
> >  Documentation/firmware-guide/acpi/index.rst   |  1 +
> >  2 files changed, 29 insertions(+)
> >  create mode 100644 Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> >
> > diff --git a/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > new file mode 100644
> > index 0000000000000..6fcc89162b898
> > --- /dev/null
> > +++ b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > @@ -0,0 +1,28 @@
> > +.. 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. Linux recognizes the _DSD property
> > +"allow-low-power-probe" that can be used for this purpose.
> 
> It would be good to refer to the document defining the generic _DSD
> properties mechanism and the GUID used for that from here.

I'll add a reference to the device properties UUID for _DSD spec.

> 
> The meaning of  "_DSD property" may not be entirely clear to the
> reader as it stands.
> 
> And maybe call the property "i2c-allow-low-power-probe" or similar, to
> indicate that it is specific to i2c.

The bus determines that already, and it's only defined for I²C here. Should
we need this in the future for e.g. I3C, there would be no need to think of
renaming it, just changing the documentation and implementation.

I don't have a strong opinion on that though. 

> 
> > +
> > +How it works
> > +============
> > +
> > +The property "allow-low-power-probe" boolean property may be used to tell Linux
> 
> "boolean device property" ?

Oops. The other "property" was supposed to be removed by now. But yes, I
agree with the suggestion.

> 
> > +that the I²C framework should instruct the kernel ACPI framework to leave the
> > +device in the low power state. 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 "allow-low-power-probe" property is present, the device will not
> > +be powered on for probe.
> > +
> > +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.
> 
> It would be good to give an ASL example with this property provided.

I'll add that for v8.

> 
> > diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
> > index ad3b5afdae77e..0070fcde9e669 100644
> > --- a/Documentation/firmware-guide/acpi/index.rst
> > +++ b/Documentation/firmware-guide/acpi/index.rst
> > @@ -11,6 +11,7 @@ ACPI Support
> >     dsd/graph
> >     dsd/data-node-references
> >     dsd/leds
> > +   dsd/allow-low-power-probe
> >     enumeration
> >     osi
> >     method-customizing
> > --
Rafael J. Wysocki Sept. 2, 2020, 4:34 p.m. UTC | #3
On Wed, Sep 2, 2020 at 6:31 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> Hi Rafael,
>
> Thank you for the review.
>
> On Wed, Sep 02, 2020 at 05:57:01PM +0200, Rafael J. Wysocki wrote:
> > On Tue, Sep 1, 2020 at 11:03 PM Sakari Ailus
> > <sakari.ailus@linux.intel.com> wrote:
> > >
> > > Document the probe-low-power _DSD property and how it is used with I²C
> > > drivers.
> >
> > I would reorder the series to make this go right after the [1/6] or
> > maybe even fold it into that patch.
> >
> > The point is that the changes in [1/6] clearly depend on the property
> > defined here.
>
> Ack.
>
> >
> > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > > ---
> > >  .../acpi/dsd/allow-low-power-probe.rst        | 28 +++++++++++++++++++
> > >  Documentation/firmware-guide/acpi/index.rst   |  1 +
> > >  2 files changed, 29 insertions(+)
> > >  create mode 100644 Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > >
> > > diff --git a/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > > new file mode 100644
> > > index 0000000000000..6fcc89162b898
> > > --- /dev/null
> > > +++ b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > > @@ -0,0 +1,28 @@
> > > +.. 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. Linux recognizes the _DSD property
> > > +"allow-low-power-probe" that can be used for this purpose.
> >
> > It would be good to refer to the document defining the generic _DSD
> > properties mechanism and the GUID used for that from here.
>
> I'll add a reference to the device properties UUID for _DSD spec.
>
> >
> > The meaning of  "_DSD property" may not be entirely clear to the
> > reader as it stands.
> >
> > And maybe call the property "i2c-allow-low-power-probe" or similar, to
> > indicate that it is specific to i2c.
>
> The bus determines that already, and it's only defined for I²C here. Should
> we need this in the future for e.g. I3C, there would be no need to think of
> renaming it, just changing the documentation and implementation.
>
> I don't have a strong opinion on that though.

The point is that the property is not going to be recognized beyond i2c.

> > > +
> > > +How it works
> > > +============
> > > +
> > > +The property "allow-low-power-probe" boolean property may be used to tell Linux
> >
> > "boolean device property" ?
>
> Oops. The other "property" was supposed to be removed by now. But yes, I
> agree with the suggestion.
>
> >
> > > +that the I²C framework should instruct the kernel ACPI framework to leave the
> > > +device in the low power state. 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 "allow-low-power-probe" property is present, the device will not
> > > +be powered on for probe.
> > > +
> > > +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.
> >
> > It would be good to give an ASL example with this property provided.
>
> I'll add that for v8.
>
> >
> > > diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
> > > index ad3b5afdae77e..0070fcde9e669 100644
> > > --- a/Documentation/firmware-guide/acpi/index.rst
> > > +++ b/Documentation/firmware-guide/acpi/index.rst
> > > @@ -11,6 +11,7 @@ ACPI Support
> > >     dsd/graph
> > >     dsd/data-node-references
> > >     dsd/leds
> > > +   dsd/allow-low-power-probe
> > >     enumeration
> > >     osi
> > >     method-customizing
> > > --
>
> --
> Kind regards,
>
> Sakari Ailus
Sakari Ailus Sept. 2, 2020, 7:59 p.m. UTC | #4
On Wed, Sep 02, 2020 at 06:34:30PM +0200, Rafael J. Wysocki wrote:
> On Wed, Sep 2, 2020 at 6:31 PM Sakari Ailus
> <sakari.ailus@linux.intel.com> wrote:
> >
> > Hi Rafael,
> >
> > Thank you for the review.
> >
> > On Wed, Sep 02, 2020 at 05:57:01PM +0200, Rafael J. Wysocki wrote:
> > > On Tue, Sep 1, 2020 at 11:03 PM Sakari Ailus
> > > <sakari.ailus@linux.intel.com> wrote:
> > > >
> > > > Document the probe-low-power _DSD property and how it is used with I²C
> > > > drivers.
> > >
> > > I would reorder the series to make this go right after the [1/6] or
> > > maybe even fold it into that patch.
> > >
> > > The point is that the changes in [1/6] clearly depend on the property
> > > defined here.
> >
> > Ack.
> >
> > >
> > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > > > ---
> > > >  .../acpi/dsd/allow-low-power-probe.rst        | 28 +++++++++++++++++++
> > > >  Documentation/firmware-guide/acpi/index.rst   |  1 +
> > > >  2 files changed, 29 insertions(+)
> > > >  create mode 100644 Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > > >
> > > > diff --git a/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > > > new file mode 100644
> > > > index 0000000000000..6fcc89162b898
> > > > --- /dev/null
> > > > +++ b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
> > > > @@ -0,0 +1,28 @@
> > > > +.. 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. Linux recognizes the _DSD property
> > > > +"allow-low-power-probe" that can be used for this purpose.
> > >
> > > It would be good to refer to the document defining the generic _DSD
> > > properties mechanism and the GUID used for that from here.
> >
> > I'll add a reference to the device properties UUID for _DSD spec.
> >
> > >
> > > The meaning of  "_DSD property" may not be entirely clear to the
> > > reader as it stands.
> > >
> > > And maybe call the property "i2c-allow-low-power-probe" or similar, to
> > > indicate that it is specific to i2c.
> >
> > The bus determines that already, and it's only defined for I²C here. Should
> > we need this in the future for e.g. I3C, there would be no need to think of
> > renaming it, just changing the documentation and implementation.
> >
> > I don't have a strong opinion on that though.
> 
> The point is that the property is not going to be recognized beyond i2c.

Not right now, that is true. Sure, I can change it for v8.
diff mbox series

Patch

diff --git a/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
new file mode 100644
index 0000000000000..6fcc89162b898
--- /dev/null
+++ b/Documentation/firmware-guide/acpi/dsd/allow-low-power-probe.rst
@@ -0,0 +1,28 @@ 
+.. 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. Linux recognizes the _DSD property
+"allow-low-power-probe" that can be used for this purpose.
+
+How it works
+============
+
+The property "allow-low-power-probe" boolean property may be used to tell Linux
+that the I²C framework should instruct the kernel ACPI framework to leave the
+device in the low power state. 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 "allow-low-power-probe" property is present, the device will not
+be powered on for probe.
+
+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.
diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
index ad3b5afdae77e..0070fcde9e669 100644
--- a/Documentation/firmware-guide/acpi/index.rst
+++ b/Documentation/firmware-guide/acpi/index.rst
@@ -11,6 +11,7 @@  ACPI Support
    dsd/graph
    dsd/data-node-references
    dsd/leds
+   dsd/allow-low-power-probe
    enumeration
    osi
    method-customizing