mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Simon Horman <horms@verge.net.au>,
	Magnus Damm <magnus.damm@gmail.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Philipp Zabel <philipp.zabel@gmail.com>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Kevin Hilman <khilman@linaro.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 07/13] ARM: shmobile: R-Mobile: Use generic_pm_domain.attach_dev() for pm_clk setup
Date: Fri, 3 Oct 2014 18:01:17 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.02.1410031756580.14789@ayla.of.borg> (raw)
In-Reply-To: <CAMuHMdVZmhpKcRO0rnXFMu7RJ4zFNPdvzuW=TBpvE5B4JviAZA@mail.gmail.com>

On Fri, 26 Sep 2014, Geert Uytterhoeven wrote:
> On Thu, Sep 25, 2014 at 6:28 PM, Geert Uytterhoeven
> <geert+renesas@glider.be> wrote:
> > diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c
> > index 717e6413d29cb998..ae846dfcd69293f7 100644
> > --- a/arch/arm/mach-shmobile/pm-rmobile.c
> > +++ b/arch/arm/mach-shmobile/pm-rmobile.c
> > @@ -101,6 +101,17 @@ static bool rmobile_pd_active_wakeup(struct device *dev)
> >         return true;
> >  }
> >
> > +static void rmobile_pd_attach_dev(struct device *dev)
> > +{
> > +       if (pm_clk_no_clocks(dev))
> > +               pm_clk_add(dev, NULL);
> 
> With !CONFIG_PM_RUNTIME, this doesn't work well in the DT case,
> as the clocks are no longer enabled by runtime PM
> (some clocks may have been enabled by boot loader/reset state though).
> 
> In the legacy case, this works more or less, as genpd takes over after
> the pm_clk domain has been initialized, which implies enabling the clocks
> if !CONFIG_PM_RUNTIME.
> 
> Will fix...

The patch below fixes that.

I'll update the whole series, and will repost after v3.18-rc1, after the
prerequisites are in.

>From cf40afcfab65fef8e6e6fa84bd3b49434afcb5eb Mon Sep 17 00:00:00 2001
From: Geert Uytterhoeven <geert+renesas@glider.be>
Date: Wed, 1 Oct 2014 20:05:53 +0200
Subject: [PATCH] ARM: shmobile: R-Mobile: Enable module clocks if !CONFIG_PM_RUNTIME

ARM: shmobile: R-Mobile: Enable module clocks if !CONFIG_PM_RUNTIME

If CONFIG_PM_RUNTIME is not set, the clocks must be enabled before the
devices can be used.  Also add missing pm_clk_create()/pm_clk_destroy()
calls.

Currently these clocks are enabled by the !CONFIG_PM_RUNTIME version of
pm_clk_notify, activated by the hack in drivers/sh/pm_runtime.c, but
this will go away soon (at least for DT, cfr. "[PATCH] drivers: sh:
Disable PM runtime for multi-platform r8a7740 with genpd").

On detach, disabling the clocks is already handled by pm_clk_destroy().
On system suspend/resume, disabling/enabling clocks is already handled
from the genpd->dev_ops.{start,stop}() callbacks.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
This depends on "PM / clock_ops: Fix crash in clocks management code if
!CONFIG_PM_RUNTIME".

 arch/arm/mach-shmobile/pm-rmobile.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c
index 80be5848adc8f15c..e5a2c568d96cdd6b 100644
--- a/arch/arm/mach-shmobile/pm-rmobile.c
+++ b/arch/arm/mach-shmobile/pm-rmobile.c
@@ -121,13 +121,23 @@ static bool rmobile_pd_active_wakeup(struct device *dev)
 
 static void rmobile_pd_attach_dev(struct device *dev)
 {
-	if (pm_clk_no_clocks(dev))
-		pm_clk_add(dev, NULL);
+	int error;
+
+	error = pm_clk_create(dev);
+	if (error) {
+		dev_err(dev, "pm_clk_create failed %d\n", error);
+		return;
+	}
+
+	pm_clk_add(dev, NULL);
+
+	if (!IS_ENABLED(CONFIG_PM_RUNTIME))
+		pm_clk_resume(dev);
 }
 
 static void rmobile_pd_detach_dev(struct device *dev)
 {
-	pm_clk_remove(dev, NULL);
+	pm_clk_destroy(dev);
 }
 
 static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
-- 
1.9.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

  reply	other threads:[~2014-10-03 16:01 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25 16:28 [PATCH 00/13] ARM: shmobile: R-Mobile: DT PM domain support Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 01/13] PM / Domains: Add genpd attach/detach callbacks Geert Uytterhoeven
2014-09-26 15:47   ` Kevin Hilman
2014-09-25 16:28 ` [PATCH v3 02/13] PM / Domains: Add DT bindings for power-on/off latencies Geert Uytterhoeven
2014-09-26  8:19   ` Ulf Hansson
2014-09-26 15:28     ` Stephen Boyd
2014-09-26 17:52       ` Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 03/13] PM / Domains: Add DT bindings for PM QoS device latencies Geert Uytterhoeven
2014-09-26  8:28   ` Ulf Hansson
2014-09-25 16:28 ` [PATCH v3 04/13] PM / Domains: Add DT bindings for the R-Mobile System Controller Geert Uytterhoeven
2014-09-26  8:32   ` Ulf Hansson
2014-09-25 16:28 ` [PATCH v3 05/13] PM / Domains: Add helper variable np = dev->of_node Geert Uytterhoeven
2014-09-26  8:43   ` Ulf Hansson
2014-09-26  8:47     ` Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 06/13] PM / Domains: Retrieve PM QoS device latencies from DT Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 07/13] ARM: shmobile: R-Mobile: Use generic_pm_domain.attach_dev() for pm_clk setup Geert Uytterhoeven
2014-09-26  8:45   ` Ulf Hansson
2014-09-26 18:04   ` Geert Uytterhoeven
2014-10-03 16:01     ` Geert Uytterhoeven [this message]
2014-09-25 16:28 ` [PATCH v3 08/13] ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain Geert Uytterhoeven
2014-09-26  8:47   ` Ulf Hansson
2014-09-25 16:28 ` [PATCH v3 09/13] ARM: shmobile: R-Mobile: Add DT support for PM domains Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 10/13] ARM: shmobile: r8a7740 dtsi: Add PM domain support Geert Uytterhoeven
2014-09-26  8:13   ` Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 11/13] drivers: sh: Disable PM runtime for multi-platform r8a7740 with genpd Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 12/13] ARM: shmobile: r8a7740 dtsi: Add preliminary PM domain latencies Geert Uytterhoeven
2014-09-25 16:28 ` [PATCH v3 13/13] ARM: shmobile: r8a7740 dtsi: Add preliminary PM QoS device latencies Geert Uytterhoeven
2014-09-26  8:16   ` Geert Uytterhoeven
2014-09-25 20:19 ` [PATCH 00/13] ARM: shmobile: R-Mobile: DT PM domain support Rafael J. Wysocki
2014-09-26  9:27   ` Geert Uytterhoeven

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=alpine.DEB.2.02.1410031756580.14789@ayla.of.borg \
    --to=geert@linux-m68k.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=grygorii.strashko@ti.com \
    --cc=horms@verge.net.au \
    --cc=khilman@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=philipp.zabel@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=tomasz.figa@gmail.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: 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

all inboxes | Powered by JetHome®