All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
	Sebastian Hesselbarth
	<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	Len Brown <len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 04/10] pm: domains: sync runtime PM status with PM domains after probe
Date: Fri, 13 Mar 2015 10:33:41 -0700	[thread overview]
Message-ID: <7hzj7gpzt6.fsf@deeprootsystems.com> (raw)
In-Reply-To: <E1YWSN5-0006G5-Ld-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org> (Russell King's message of "Fri, 13 Mar 2015 16:23:35 +0000")

Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> writes:

> Synchronise the PM domain status with runtime PM's status after a
> platform device has been probed.  This augments the solution in commit
> 2ed127697eb1 ("PM / Domains: Power on the PM domain right after attach
> completes").
>
> The above commit added a call to power up the PM domain when a device
> attaches to the domain in order to match the behaviour required by
> drivers that make no use of runtime PM.  The assumption is that the
> device driver will cause a runtime PM transition, which will synchronise
> the PM domain state with the runtime PM state.
>
> However, by default, runtime PM will assume that the device is initially
> suspended, and some drivers may make use of this should they not need to
> touch the hardware during probe.
>
> In order to allow such drivers, trigger the PM domain code to check
> whether the PM domain can be suspended after the probe function, undoing
> the effect of the power-on prior to the probe.
>
> Signed-off-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>

[ Since I hadn't seen this version yet, repeating comment from the
  previous version so it doesn't get lost. ]

I think this is a good fix to the existing problem.  One minor nit on a
comment below, otherwise:

Acked-by: Kevin Hilman <khilman-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

> +/**
> + * dev_pm_domain_sync - synchronise the PM domain state with its devices
> + * @dev: device corresponding with domain
> + *
> + * Synchronise the PM domain state with the recently probed device, which
> + * may be in a variety of PM states.  This ensures that a device which
> + * enables runtime PM in suspended state, and never transitions to active
> + * in its probe handler is properly suspended after the probe.
> + */

It's not the *device* tha needs to be properly suspended after the probe
(since it's already/still runtime suspended), but the pm_domain that
would be potentially powered down.  Hence, I'd reword the last sentence
slightly:

   This ensures that a device which enables runtime PM in suspended
   state, and never transitions to active in its probe handler gives an
   opportunity for the PM domain to be powered down after the probe.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: khilman@kernel.org (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/10] pm: domains: sync runtime PM status with PM domains after probe
Date: Fri, 13 Mar 2015 10:33:41 -0700	[thread overview]
Message-ID: <7hzj7gpzt6.fsf@deeprootsystems.com> (raw)
In-Reply-To: <E1YWSN5-0006G5-Ld@rmk-PC.arm.linux.org.uk> (Russell King's message of "Fri, 13 Mar 2015 16:23:35 +0000")

Russell King <rmk+kernel@arm.linux.org.uk> writes:

> Synchronise the PM domain status with runtime PM's status after a
> platform device has been probed.  This augments the solution in commit
> 2ed127697eb1 ("PM / Domains: Power on the PM domain right after attach
> completes").
>
> The above commit added a call to power up the PM domain when a device
> attaches to the domain in order to match the behaviour required by
> drivers that make no use of runtime PM.  The assumption is that the
> device driver will cause a runtime PM transition, which will synchronise
> the PM domain state with the runtime PM state.
>
> However, by default, runtime PM will assume that the device is initially
> suspended, and some drivers may make use of this should they not need to
> touch the hardware during probe.
>
> In order to allow such drivers, trigger the PM domain code to check
> whether the PM domain can be suspended after the probe function, undoing
> the effect of the power-on prior to the probe.
>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

[ Since I hadn't seen this version yet, repeating comment from the
  previous version so it doesn't get lost. ]

I think this is a good fix to the existing problem.  One minor nit on a
comment below, otherwise:

Acked-by: Kevin Hilman <khilman@linaro.org>

> +/**
> + * dev_pm_domain_sync - synchronise the PM domain state with its devices
> + * @dev: device corresponding with domain
> + *
> + * Synchronise the PM domain state with the recently probed device, which
> + * may be in a variety of PM states.  This ensures that a device which
> + * enables runtime PM in suspended state, and never transitions to active
> + * in its probe handler is properly suspended after the probe.
> + */

It's not the *device* tha needs to be properly suspended after the probe
(since it's already/still runtime suspended), but the pm_domain that
would be potentially powered down.  Hence, I'd reword the last sentence
slightly:

   This ensures that a device which enables runtime PM in suspended
   state, and never transitions to active in its probe handler gives an
   opportunity for the PM domain to be powered down after the probe.

Kevin

  parent reply	other threads:[~2015-03-13 17:33 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-12 18:30 [FOR DISCUSSION 0/9] Dove PMU support Russell King - ARM Linux
2015-03-12 18:30 ` Russell King - ARM Linux
2015-03-12 18:30 ` [PATCH 1/9] pm: domains: quieten down generic pm domains Russell King
2015-03-13  8:46   ` Ulf Hansson
2015-03-13 15:57   ` Kevin Hilman
2015-03-12 18:31 ` [PATCH 2/9] pm: domains: avoid potential oops in pm_genpd_remove_device() Russell King
2015-03-13  8:56   ` Ulf Hansson
2015-03-13  9:20     ` Russell King - ARM Linux
2015-03-13 12:45       ` Geert Uytterhoeven
2015-03-14  1:27         ` Rafael J. Wysocki
2015-03-13 13:23     ` Russell King - ARM Linux
2015-03-13 16:33   ` Kevin Hilman
2015-03-13 16:58     ` Russell King - ARM Linux
2015-03-12 18:31 ` [PATCH 3/9] pm: domains: sync runtime PM status with PM domains after probe Russell King
2015-03-12 23:25   ` Rafael J. Wysocki
2015-03-13  9:30   ` Ulf Hansson
2015-03-13 10:14     ` Russell King - ARM Linux
2015-03-13 10:42       ` Ulf Hansson
2015-03-13 13:39     ` Russell King - ARM Linux
2015-03-13 16:45   ` Kevin Hilman
2015-03-12 18:31 ` [PATCH 5/9] ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets Russell King
2015-03-13 12:07   ` Arnd Bergmann
2015-03-13 12:29     ` Russell King - ARM Linux
2015-03-13 12:42       ` Arnd Bergmann
2015-03-13 12:47         ` Russell King - ARM Linux
2015-03-13 15:08           ` Arnd Bergmann
2015-03-13 15:28             ` Russell King - ARM Linux
2015-03-13 15:36               ` Arnd Bergmann
2015-03-13 12:59         ` Russell King - ARM Linux
2015-03-12 18:31 ` [PATCH 6/9] ARM: dt: dove: add Dove PMU DT entry to dove.dtsi Russell King
2015-03-12 18:31   ` Russell King
2015-03-13 12:30   ` Thomas Petazzoni
2015-03-13 12:30     ` Thomas Petazzoni
2015-03-13 12:33     ` Russell King - ARM Linux
2015-03-13 12:33       ` Russell King - ARM Linux
2015-03-16 18:27   ` Gregory CLEMENT
2015-03-16 18:27     ` Gregory CLEMENT
2015-03-17 13:43     ` Russell King - ARM Linux
2015-03-17 13:43       ` Russell King - ARM Linux
2015-03-17 15:09       ` Sebastian Hesselbarth
2015-03-17 15:09         ` Sebastian Hesselbarth
2015-03-17 15:15         ` Russell King - ARM Linux
2015-03-17 15:15           ` Russell King - ARM Linux
2015-03-25  8:25         ` Linus Walleij
2015-03-25  8:25           ` Linus Walleij
2015-03-12 18:31 ` [PATCH 7/9] ARM: dt: dove: wire up RTC interrupt Russell King
2015-03-12 18:31   ` Russell King
2015-03-12 18:31 ` [PATCH 8/9] ARM: dt: dove: add video decoder power domain description Russell King
2015-03-12 18:31   ` Russell King
2015-03-12 18:31 ` [PATCH 9/9] ARM: dt: dove: add GPU " Russell King
2015-03-12 18:31   ` Russell King
     [not found] ` <20150312183020.GU8656-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-03-12 18:31   ` [PATCH 4/9] dt-bindings: add Marvell PMU documentation Russell King
     [not found]     ` <E1YW7t0-0003mE-My-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2015-03-12 21:32       ` Rob Herring
     [not found]         ` <CAL_Jsq+R70GVsuig7Ebo49_MeneD_RZ=E0haTVsb_xFhTR7-pw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-12 21:42           ` Russell King - ARM Linux
2015-03-13 12:02       ` Arnd Bergmann
2015-03-13 11:57   ` [FOR DISCUSSION 0/9] Dove PMU support Arnd Bergmann
2015-03-13 11:57     ` Arnd Bergmann
2015-03-13 12:11     ` Russell King - ARM Linux
2015-03-13 12:11       ` Russell King - ARM Linux
2015-03-13 12:26       ` Arnd Bergmann
2015-03-13 12:26         ` Arnd Bergmann
2015-03-13 12:32         ` Russell King - ARM Linux
2015-03-13 12:32           ` Russell King - ARM Linux
2015-03-13 12:47           ` Arnd Bergmann
2015-03-13 12:47             ` Arnd Bergmann
2015-03-13 16:23   ` [PATCH 04/10] pm: domains: sync runtime PM status with PM domains after probe Russell King
2015-03-13 16:23     ` Russell King
     [not found]     ` <E1YWSN5-0006G5-Ld-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2015-03-13 17:33       ` Kevin Hilman [this message]
2015-03-13 17:33         ` Kevin Hilman
2015-03-13 16:22 ` [FOR DISCUSSION 0/10] Dove PMU support Russell King - ARM Linux
2015-03-13 16:23 ` [PATCH 01/10] pm: domains: quieten down generic pm domains Russell King
2015-03-13 16:23   ` Russell King
2015-03-13 17:10   ` Kevin Hilman
2015-03-13 17:10     ` Kevin Hilman
2015-03-13 16:23 ` [PATCH 02/10] pm: domains: factor out code to get the generic PM domain from a struct device Russell King
2015-03-13 16:23   ` Russell King
2015-03-13 17:20   ` Kevin Hilman
2015-03-13 17:20     ` Kevin Hilman
2015-03-13 17:35     ` Russell King - ARM Linux
2015-03-13 17:35       ` Russell King - ARM Linux
2015-03-13 16:23 ` [PATCH 03/10] pm: domains: avoid potential oops in pm_genpd_remove_device() Russell King
2015-03-13 16:23   ` Russell King
2015-03-13 17:28   ` Kevin Hilman
2015-03-13 17:28     ` Kevin Hilman
2015-03-13 16:23 ` [PATCH 05/10] dt-bindings: add Marvell PMU documentation Russell King
2015-03-13 16:23   ` Russell King
2015-03-17  0:28   ` Rob Herring
2015-03-17  0:28     ` Rob Herring
2015-03-13 16:23 ` [PATCH 06/10] ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets Russell King
2015-03-13 16:23 ` [PATCH 07/10] ARM: dt: dove: add Dove PMU DT entry to dove.dtsi Russell King
2015-03-13 16:23   ` Russell King
2015-03-13 16:23 ` [PATCH 08/10] ARM: dt: dove: wire up RTC interrupt Russell King
2015-03-13 16:23   ` Russell King
2015-03-13 16:24 ` [PATCH 09/10] ARM: dt: dove: add video decoder power domain description Russell King
2015-03-13 16:24   ` Russell King
2015-03-13 16:24 ` [PATCH 10/10] ARM: dt: dove: add GPU " Russell King
2015-03-13 16:24   ` Russell King
2015-03-19 21:59 ` [FOR DISCUSSION 0/9] Dove PMU support Rafael J. Wysocki
2015-03-19 21:59   ` Rafael J. Wysocki
2015-03-19 22:02   ` Rafael J. Wysocki
2015-03-19 22:02     ` Rafael J. Wysocki
2015-03-20 12:16     ` Russell King - ARM Linux
2015-03-20 12:16       ` Russell King - ARM Linux
2015-03-20 12:44       ` Rafael J. Wysocki
2015-03-20 12:44         ` Rafael J. Wysocki
2015-03-20 17:19         ` Russell King - ARM Linux
2015-03-20 17:19           ` Russell King - ARM Linux
2015-03-20 17:20           ` [PATCH 1/3] pm: domains: quieten down generic pm domains Russell King
2015-03-20 17:20             ` Russell King
2015-03-20 17:20           ` [PATCH 2/3] pm: domains: factor out code to get the generic PM domain from a struct device Russell King
2015-03-20 17:20             ` Russell King
2015-03-23 13:28             ` Ulf Hansson
2015-03-23 13:28               ` Ulf Hansson
2015-03-23 15:17               ` Russell King - ARM Linux
2015-03-23 15:17                 ` Russell King - ARM Linux
2015-03-24  0:29                 ` Rafael J. Wysocki
2015-03-24  0:29                   ` Rafael J. Wysocki
2015-03-26 15:20                   ` Russell King - ARM Linux
2015-03-26 15:20                     ` Russell King - ARM Linux
2015-03-26 16:00                     ` Russell King - ARM Linux
2015-03-26 16:00                       ` Russell King - ARM Linux
2015-03-20 17:20           ` [PATCH 3/3] pm: domains: avoid potential oops in pm_genpd_remove_device() Russell King
2015-03-20 17:20             ` Russell King
2015-03-23 13:32             ` Ulf Hansson
2015-03-23 13:32               ` Ulf Hansson

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=7hzj7gpzt6.fsf@deeprootsystems.com \
    --to=khilman-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=andrew-g2DYL2Zd6BY@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
    --cc=len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
    --cc=rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.