linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: linux-i2c <linux-i2c@vger.kernel.org>,
	Wolfram Sang <wsa@the-dreams.de>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-acpi@vger.kernel.org, Bingbu Cao <bingbu.cao@intel.com>,
	linux-media <linux-media@vger.kernel.org>,
	Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>,
	Hyungwoo Yang <hyungwoo.yang@intel.com>,
	Arnd Bergmann <arnd@arndb.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rajmohan Mani <rajmohan.mani@intel.com>,
	Tomasz Figa <tfiga@chromium.org>
Subject: Re: [PATCH v4 5/6] at24: Support probing while off
Date: Mon, 23 Mar 2020 23:31:01 +0200	[thread overview]
Message-ID: <20200323213101.GB21174@kekkonen.localdomain> (raw)
In-Reply-To: <CAMpxmJVPTKW+sYSJ3dnfF8nLAOKEa4Ob7bpxG0KD3Tkdm+rtYw@mail.gmail.com>

Bartosz,

On Thu, Mar 12, 2020 at 02:10:32PM +0100, Bartosz Golaszewski wrote:
> śr., 11 mar 2020 o 09:56 Sakari Ailus <sakari.ailus@linux.intel.com> napisał(a):
> >
> > Hi Bartosz,
> >
> > Thanks for the reply.
> >
> > On Wed, Jan 29, 2020 at 02:36:17PM +0100, Bartosz Golaszewski wrote:
> > > wt., 21 sty 2020 o 14:41 Sakari Ailus <sakari.ailus@linux.intel.com> napisał(a):
> > > >
> > > > In certain use cases (where the chip is part of a camera module, and the
> > > > camera module is wired together with a camera privacy LED), powering on
> > > > the device during probe is undesirable. Add support for the at24 to
> > > > execute probe while being powered off. For this to happen, a hint in form
> > > > of a device property is required from the firmware.
> > > >
> > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > > > ---
> > > >  drivers/misc/eeprom/at24.c | 31 +++++++++++++++++++++----------
> 
> [snip!]
> 
> > > >
> > > >  static int at24_remove(struct i2c_client *client)
> > > >  {
> > > > +       bool low_power;
> > > > +
> > > >         pm_runtime_disable(&client->dev);
> > > > -       pm_runtime_set_suspended(&client->dev);
> > > > +       low_power = acpi_dev_state_low_power(&client->dev);
> > >
> > > This is inconsistent. You define the low_power field in the context
> > > structure (BTW the name low_power is a bit vague here - without
> > > looking at its assignment it would make me think it's about something
> > > battery-related, how about 'off_at_probe'?) and instead of reusing
> >
> > The field was called probe_powered_off in v1, but I changed it to
> > probe_low_power (and renamed related functions etc.) based on review
> > comments --- for the device may not be powered off actually.
> >
> 
> But is it actually ever low-power? What are the possible logical
> states of the device? If I understood correctly: it's either off or on
> at probe - not actually low-power. Am I missing something? In your
> cover letter you're writing: "These patches enable calling (and
> finishing) a driver's probe function without powering on the
> respective device on busses where the practice is to power on the
> device for probe." To me there's no mention of a low-power state,
> which makes the name 'probe_low_power' seem completely unrelated.

See <URL:https://patchwork.kernel.org/patch/10938483/>

I've updated the patches according to the comments but did not update the
cover page accordingly.

Generally drivers are interested whether a device is powered on so it can
be accessed, but the actual power state of the device isn't known to the
driver when it is, well, not in an operational state. A device may be
powered from a regulator that is always enabled, for instance.

> 
> > > this field here, you call acpi_dev_state_low_power() again. Either
> > > don't store the context for the life-time of the device if not
> > > necessary or don't call acpi_dev_state_low_power() at remove, although
> > > the commit message doesn't describe whether the latter is done on
> > > purpose.
> >
> > Right. probe-low-power property has the same effect on remove for
> > consistency, i.e. the device can remain in low power state during remove.
> > This is documented in probe_low_power field documentation in the first
> > patch.
> >
> 
> Just please don't store any state if you're not using it outside of
> the probe() function.

What exactly are you referring to? The patch adds a local variable to the
driver's probe and remove functions.

-- 
Kind regards,

Sakari Ailus

  reply	other threads:[~2020-03-23 21:31 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 13:41 [PATCH v4 0/6] Support running driver's probe for a device powered off Sakari Ailus
2020-01-21 13:41 ` [PATCH v4 1/6] i2c: Allow driver to manage the device's power state during probe Sakari Ailus
2020-01-29 13:54   ` Bartosz Golaszewski
2020-03-23 21:36     ` Sakari Ailus
2020-01-21 13:41 ` [PATCH v4 2/6] ACPI: Add a convenience function to tell a device is in low power state Sakari Ailus
2020-01-21 16:07   ` Rafael J. Wysocki
2020-01-21 13:41 ` [PATCH v4 3/6] ov5670: Support probe whilst the device is in a " Sakari Ailus
2020-01-21 13:41 ` [PATCH v4 4/6] media: i2c: imx319: Support probe while the device is off Sakari Ailus
2020-01-21 13:41 ` [PATCH v4 5/6] at24: Support probing while off Sakari Ailus
2020-01-29 13:36   ` Bartosz Golaszewski
2020-03-11  8:55     ` Sakari Ailus
2020-03-12 13:10       ` Bartosz Golaszewski
2020-03-23 21:31         ` Sakari Ailus [this message]
2020-03-25 13:48           ` Bartosz Golaszewski
2020-08-10  8:25             ` Sakari Ailus
2020-08-10 18:12               ` Bartosz Golaszewski
2020-08-11  8:00                 ` Sakari Ailus
2020-08-12 18:07                   ` Bartosz Golaszewski
2020-08-12 19:25                     ` Wolfram Sang
2020-08-12 19:33                       ` Bartosz Golaszewski
2020-01-21 13:41 ` [PATCH v4 6/6] Documentation: ACPI: Document probe-low-power _DSD property Sakari Ailus
2020-01-21 16:09   ` Rafael J. Wysocki
2020-01-21 16:18     ` Sakari Ailus
2020-01-21 16:56       ` Rafael J. Wysocki
2020-01-21 16:58         ` Sakari Ailus

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=20200323213101.GB21174@kekkonen.localdomain \
    --to=sakari.ailus@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=bgolaszewski@baylibre.com \
    --cc=bingbu.cao@intel.com \
    --cc=chiranjeevi.rapolu@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hyungwoo.yang@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=rajmohan.mani@intel.com \
    --cc=tfiga@chromium.org \
    --cc=wsa@the-dreams.de \
    /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).