From: "Rafael J. Wysocki" <rafael@kernel.org> To: Florian Fainelli <f.fainelli@gmail.com> Cc: "Rafael J. Wysocki" <rafael@kernel.org>, Mason <slash.tmp@free.fr>, Ulf Hansson <ulf.hansson@linaro.org>, JB <jb_lescher@sigmadesigns.com>, linux-pm <linux-pm@vger.kernel.org>, Thibaud Cornic <thibaud_cornic@sigmadesigns.com>, Daniel Lezcano <daniel.lezcano@linaro.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Kevin Hilman <khilman@kernel.org>, Pavel Machek <pavel@ucw.cz>, Linux ARM <linux-arm-kernel@lists.infradead.org>, Alexandre Belloni <alexandre.belloni@free-electrons.com> Subject: Re: Drivers taking different actions depending on sleep state Date: Thu, 22 Jun 2017 18:09:52 +0200 [thread overview] Message-ID: <CAJZ5v0i0HBXG_Ocipf86PuKTdSM_g3aQoV7OZ-a977GVXJykFg@mail.gmail.com> (raw) In-Reply-To: <6a4d18d9-2494-e35c-d209-a019292d6648@gmail.com> On Thu, Jun 22, 2017 at 5:18 PM, Florian Fainelli <f.fainelli@gmail.com> wrote: > > > On 06/21/2017 05:03 PM, Rafael J. Wysocki wrote: >> On Thu, Jun 22, 2017 at 1:55 AM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>> On 06/21/2017 03:57 PM, Rafael J. Wysocki wrote: >>>> On Thu, Jun 22, 2017 at 12:48 AM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>>>> On 06/21/2017 02:59 PM, Rafael J. Wysocki wrote: >>>>>> On Wed, Jun 21, 2017 at 11:16 PM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>>>>>> On 06/09/2017 03:53 PM, Rafael J. Wysocki wrote: [cut] > > For the reasons explained before, if the same set of drivers need to > deal with one or more platform_suspend_ops driver, say a classic > homegrown one, and one that is ACPI/ARM SCPI based for instance, we > would have to sprinkle checks like these in the driver: > > static int drv_suspend(struct device *d) > { > if (platform_suspend_get_state() == PM_SUSPEND_STANDBY || > acpi_target_system_state() == XXXX | > > > and so on and so forth, that does not seem to scale horizontally. > >> >> ACPI has acpi_target_system_state() for this very purpose, for example. >> >>> If this seems acceptable to you along with proper documentation to >>> illustrate the platform specific meaning of these states, I will got >>> ahead and cook a patch. >> >> I wouldn't like platform-specific things to pretend that they are generic. > > Would a notifier model be more appropriate perhaps? The mechanism by > which the notifications get registered to and signaled can be made > generic, the exact information however would be inherently > platform_suspend_ops specific, and only the relevant drivers that need > to subscribe to that kind of information would do that. Please see the message I've just sent in this thread. :-) Thanks, Rafael
WARNING: multiple messages have this Message-ID (diff)
From: rafael@kernel.org (Rafael J. Wysocki) To: linux-arm-kernel@lists.infradead.org Subject: Drivers taking different actions depending on sleep state Date: Thu, 22 Jun 2017 18:09:52 +0200 [thread overview] Message-ID: <CAJZ5v0i0HBXG_Ocipf86PuKTdSM_g3aQoV7OZ-a977GVXJykFg@mail.gmail.com> (raw) In-Reply-To: <6a4d18d9-2494-e35c-d209-a019292d6648@gmail.com> On Thu, Jun 22, 2017 at 5:18 PM, Florian Fainelli <f.fainelli@gmail.com> wrote: > > > On 06/21/2017 05:03 PM, Rafael J. Wysocki wrote: >> On Thu, Jun 22, 2017 at 1:55 AM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>> On 06/21/2017 03:57 PM, Rafael J. Wysocki wrote: >>>> On Thu, Jun 22, 2017 at 12:48 AM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>>>> On 06/21/2017 02:59 PM, Rafael J. Wysocki wrote: >>>>>> On Wed, Jun 21, 2017 at 11:16 PM, Florian Fainelli <f.fainelli@gmail.com> wrote: >>>>>>> On 06/09/2017 03:53 PM, Rafael J. Wysocki wrote: [cut] > > For the reasons explained before, if the same set of drivers need to > deal with one or more platform_suspend_ops driver, say a classic > homegrown one, and one that is ACPI/ARM SCPI based for instance, we > would have to sprinkle checks like these in the driver: > > static int drv_suspend(struct device *d) > { > if (platform_suspend_get_state() == PM_SUSPEND_STANDBY || > acpi_target_system_state() == XXXX | > > > and so on and so forth, that does not seem to scale horizontally. > >> >> ACPI has acpi_target_system_state() for this very purpose, for example. >> >>> If this seems acceptable to you along with proper documentation to >>> illustrate the platform specific meaning of these states, I will got >>> ahead and cook a patch. >> >> I wouldn't like platform-specific things to pretend that they are generic. > > Would a notifier model be more appropriate perhaps? The mechanism by > which the notifications get registered to and signaled can be made > generic, the exact information however would be inherently > platform_suspend_ops specific, and only the relevant drivers that need > to subscribe to that kind of information would do that. Please see the message I've just sent in this thread. :-) Thanks, Rafael
next prev parent reply other threads:[~2017-06-22 16:09 UTC|newest] Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-06-09 15:20 Drivers taking different actions depending on sleep state Mason 2017-06-09 15:20 ` Mason 2017-06-09 16:27 ` Mason 2017-06-09 16:27 ` Mason 2017-06-09 21:30 ` Pavel Machek 2017-06-09 21:30 ` Pavel Machek 2017-06-10 9:16 ` Mason 2017-06-10 9:16 ` Mason 2017-06-09 22:05 ` Florian Fainelli 2017-06-09 22:05 ` Florian Fainelli 2017-06-09 22:53 ` Rafael J. Wysocki 2017-06-09 22:53 ` Rafael J. Wysocki 2017-06-21 21:16 ` Florian Fainelli 2017-06-21 21:16 ` Florian Fainelli 2017-06-21 21:59 ` Rafael J. Wysocki 2017-06-21 21:59 ` Rafael J. Wysocki 2017-06-21 22:48 ` Florian Fainelli 2017-06-21 22:48 ` Florian Fainelli 2017-06-21 22:57 ` Rafael J. Wysocki 2017-06-21 22:57 ` Rafael J. Wysocki 2017-06-21 23:55 ` Florian Fainelli 2017-06-21 23:55 ` Florian Fainelli 2017-06-22 0:03 ` Rafael J. Wysocki 2017-06-22 0:03 ` Rafael J. Wysocki 2017-06-22 15:18 ` Florian Fainelli 2017-06-22 15:18 ` Florian Fainelli 2017-06-22 16:09 ` Rafael J. Wysocki [this message] 2017-06-22 16:09 ` Rafael J. Wysocki 2017-06-22 8:51 ` Alexandre Belloni 2017-06-22 8:51 ` Alexandre Belloni 2017-06-22 16:00 ` Rafael J. Wysocki 2017-06-22 16:00 ` Rafael J. Wysocki 2017-06-23 1:08 ` [RFC 0/2] PM / suspend: Add platform_suspend_target_state() Florian Fainelli 2017-06-23 1:08 ` Florian Fainelli 2017-06-23 1:08 ` [RFC 1/2] " Florian Fainelli 2017-06-23 1:08 ` Florian Fainelli 2017-06-29 23:00 ` Rafael J. Wysocki 2017-06-29 23:00 ` Rafael J. Wysocki 2017-07-12 18:08 ` Florian Fainelli 2017-07-12 18:08 ` Florian Fainelli 2017-07-14 22:16 ` Rafael J. Wysocki 2017-07-14 22:16 ` Rafael J. Wysocki 2017-07-15 6:28 ` Pavel Machek 2017-07-15 6:28 ` Pavel Machek 2017-07-15 12:17 ` Rafael J. Wysocki 2017-07-15 12:17 ` Rafael J. Wysocki 2017-07-15 16:46 ` Pavel Machek 2017-07-15 16:46 ` Pavel Machek 2017-07-15 17:20 ` Florian Fainelli 2017-07-15 17:20 ` Florian Fainelli 2017-07-15 18:33 ` Alexandre Belloni 2017-07-15 18:33 ` Alexandre Belloni 2017-07-06 3:18 ` Pavel Machek 2017-07-06 3:18 ` Pavel Machek 2017-07-16 13:41 ` Alexandre Belloni 2017-07-16 13:41 ` Alexandre Belloni 2017-07-16 15:35 ` Florian Fainelli 2017-07-16 15:35 ` Florian Fainelli 2017-07-15 23:24 ` Rafael J. Wysocki 2017-07-15 23:24 ` Rafael J. Wysocki 2017-07-15 23:34 ` Mason 2017-07-15 23:34 ` Mason 2017-07-15 23:38 ` Rafael J. Wysocki 2017-07-15 23:38 ` Rafael J. Wysocki 2017-07-16 2:36 ` Florian Fainelli 2017-07-16 2:36 ` Florian Fainelli 2017-07-16 10:22 ` Rafael J. Wysocki 2017-07-16 10:22 ` Rafael J. Wysocki 2017-07-16 13:38 ` Alexandre Belloni 2017-07-16 13:38 ` Alexandre Belloni 2017-07-16 18:24 ` Pavel Machek 2017-07-16 18:24 ` Pavel Machek 2017-07-16 15:41 ` Florian Fainelli 2017-07-16 15:41 ` Florian Fainelli 2017-07-15 23:29 ` Rafael J. Wysocki 2017-07-15 23:29 ` Rafael J. Wysocki 2017-07-06 3:17 ` Pavel Machek 2017-07-06 3:17 ` Pavel Machek 2017-07-16 10:28 ` Rafael J. Wysocki 2017-07-16 10:28 ` Rafael J. Wysocki 2017-07-16 18:22 ` Pavel Machek 2017-07-16 18:22 ` Pavel Machek 2017-06-23 1:08 ` [RFC 2/2] soc: bcm: brcmstb: PM: Implement target_state callback Florian Fainelli 2017-06-23 1:08 ` Florian Fainelli 2017-06-29 23:04 ` Rafael J. Wysocki 2017-06-29 23:04 ` Rafael J. Wysocki 2017-07-16 2:36 ` [PATCH 0/2] PM / suspend: Add platform_suspend_target_state() Florian Fainelli 2017-07-16 2:36 ` Florian Fainelli 2017-07-16 2:36 ` [PATCH 1/2] " Florian Fainelli 2017-07-16 2:36 ` Florian Fainelli 2017-07-06 3:18 ` Pavel Machek 2017-07-06 3:18 ` Pavel Machek 2017-07-16 15:41 ` Florian Fainelli 2017-07-16 15:41 ` Florian Fainelli 2017-07-16 10:30 ` Rafael J. Wysocki 2017-07-16 10:30 ` Rafael J. Wysocki 2017-07-16 2:36 ` [PATCH 2/2] soc: bcm: brcmstb: PM: Implement target_state callback Florian Fainelli 2017-07-16 2:36 ` Florian Fainelli 2017-07-17 20:06 ` [PATCH v2] PM / suspend: Add suspend_target_state() Florian Fainelli 2017-07-17 20:06 ` Florian Fainelli 2017-07-17 20:16 ` Pavel Machek 2017-07-17 20:16 ` Pavel Machek 2017-07-17 21:03 ` Rafael J. Wysocki 2017-07-17 21:03 ` Rafael J. Wysocki 2017-07-17 21:21 ` Florian Fainelli 2017-07-17 21:21 ` Florian Fainelli 2017-07-20 8:03 ` Pavel Machek 2017-07-20 8:03 ` Pavel Machek 2017-07-17 22:10 ` [PATCH v3] PM / suspend: Export pm_suspend_target_state Florian Fainelli 2017-07-17 22:10 ` Florian Fainelli 2017-07-17 23:24 ` Rafael J. Wysocki 2017-07-17 23:24 ` Rafael J. Wysocki 2017-07-18 0:19 ` [PATCH v4] " Florian Fainelli 2017-07-18 0:19 ` Florian Fainelli 2017-07-24 20:55 ` Rafael J. Wysocki 2017-07-24 20:55 ` Rafael J. Wysocki 2017-07-13 12:03 ` Drivers taking different actions depending on sleep state Pavel Machek 2017-07-13 12:03 ` Pavel Machek
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=CAJZ5v0i0HBXG_Ocipf86PuKTdSM_g3aQoV7OZ-a977GVXJykFg@mail.gmail.com \ --to=rafael@kernel.org \ --cc=alexandre.belloni@free-electrons.com \ --cc=daniel.lezcano@linaro.org \ --cc=f.fainelli@gmail.com \ --cc=jb_lescher@sigmadesigns.com \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=pavel@ucw.cz \ --cc=rjw@rjwysocki.net \ --cc=slash.tmp@free.fr \ --cc=thibaud_cornic@sigmadesigns.com \ --cc=ulf.hansson@linaro.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: linkBe 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.