From: Thierry Reding <treding@nvidia.com>
To: Kevin Hilman <khilman@kernel.org>
Cc: mark.rutland@arm.com, pgaikwad@nvidia.com, airlied@linux.ie,
rjw@rjwysocki.net, will.deacon@arm.com,
linux-tegra@vger.kernel.org, thierry.reding@gmail.com,
linux-pm@vger.kernel.org, gnurou@gmail.com,
mturquette@linaro.org, Vince Hsu <vinceh@nvidia.com>,
ijc+devicetree@hellion.org.uk, viresh.kumar@linaro.org,
tbergstrom@nvidia.com, robh@kernel.org,
devicetree@vger.kernel.org, jroedel@suse.de, pawel.moll@arm.com,
swarren@wwwdotorg.org, robh+dt@kernel.org, bhelgaas@google.com,
linux@arm.linux.org.uk, linux-arm-kernel@lists.infradead.org,
pdeschrijver@nvidia.com, sboyd@codeaurora.org,
linux-kernel@vger.kernel.org, arnd@arndb.de,
p.zabel@pengutronix.de, galak@codeaurora.org, tj@kernel.org
Subject: Re: [PATCH v2 07/17] soc: tegra: pmc: Add generic PM domain support
Date: Wed, 8 Apr 2015 10:06:31 +0200 [thread overview]
Message-ID: <20150408080629.GB26974@ulmo.nvidia.com> (raw)
In-Reply-To: <7h1tjwx4r2.fsf@deeprootsystems.com>
[-- Attachment #1.1: Type: text/plain, Size: 2764 bytes --]
On Mon, Apr 06, 2015 at 03:37:37PM -0700, Kevin Hilman wrote:
> Hi Vince,
>
> Vince Hsu <vinceh@nvidia.com> writes:
[...]
> > +static int tegra_pmc_powergate_power_off(struct generic_pm_domain *domain)
> > +{
> > + struct tegra_powergate *powergate = to_powergate(domain);
> > + struct tegra_pmc *pmc = powergate->pmc;
> > + int err;
> > +
> > + dev_dbg(pmc->dev, "> %s(domain=%p)\n", __func__, domain);
> > + dev_dbg(pmc->dev, " name: %s\n", domain->name);
> > +
> > + /* never turn off these partitions */
> > + switch (powergate->id) {
> > + case TEGRA_POWERGATE_CPU:
> > + case TEGRA_POWERGATE_CPU1:
> > + case TEGRA_POWERGATE_CPU2:
> > + case TEGRA_POWERGATE_CPU3:
> > + case TEGRA_POWERGATE_CPU0:
> > + case TEGRA_POWERGATE_C0NC:
> > + case TEGRA_POWERGATE_IRAM:
> > + dev_dbg(pmc->dev, "not disabling always-on partition %s\n",
> > + domain->name);
> > + err = -EINVAL;
> > + goto out;
> > + }
>
> You're re-inventing the per-device QoS flag: PM_QOS_FLAG_NO_POWER_OFF
> which could be used here to prevent ->power_off from ever being called.
>
> Alternately, if this really a static configuraion, why even register the
> ->power_off hook for these domains in the first place?
This isn't really a static configuration. The problem here is that there
is code elsewhere to deal with these domains. The CPU power partitions
for example are dealt with in the cpuidle code (or PSCI firmware). What
complicates this even further is that we have an existing custom API for
enabling/disabling power partitions (cpuidle uses that API).
Although, thinking about it some more, it seems that for the purposes of
power domains perhaps we should just not consider these power partitions
at all (i.e. not even register them).
[...]
> > @@ -831,12 +1405,19 @@ static int tegra_pmc_probe(struct platform_device *pdev)
> >
> > tegra_pmc_init_tsense_reset(pmc);
> >
> > + if (IS_ENABLED(CONFIG_PM_GENERIC_DOMAINS)) {
> > + err = tegra_powergate_init(pmc);
> > + if (err < 0)
> > + return err;
> > + }
>
> On many SoCs there's some special handling for the !CONFIG_PM case here
> such that all the PM domains are enabled by default in case they are not
> enabled by the bootloader.
Yeah, I think we'll need something like that for backwards-compatibility
with the old API. Converting to power domains should be done in the same
step as stubbing out the old API, and then to prevent devices using some
old DTBs to fail we'd need to enable all domains that are currently
controlled by existing drivers using the custom API.
So we don't only need this fallback for !PM_GENERIC_DOMAINS but also for
cases where we detect a DTB that's missing the nodes to describe the
domains.
Thierry
[-- Attachment #1.2: Type: application/pgp-signature, Size: 819 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2015-04-08 8:06 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-12 12:15 [PATCH v2 00/17] Add generic PM domain support for Tegra SoCs Vince Hsu
2015-03-12 12:15 ` [PATCH v2 01/17] reset: add of_reset_control_get_by_index() Vince Hsu
[not found] ` <1426162518-7405-2-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-03-12 15:01 ` Philipp Zabel
2015-03-13 3:04 ` Vince Hsu
2015-03-12 12:15 ` [PATCH v2 02/17] memory: tegra: add mc flush support Vince Hsu
2015-03-12 12:15 ` [PATCH v2 03/17] memory: tegra: add flush operation for Tegra30 memory clients Vince Hsu
2015-03-12 12:15 ` [PATCH v2 04/17] memory: tegra: add flush operation for Tegra114 " Vince Hsu
2015-03-12 12:15 ` [PATCH v2 05/17] memory: tegra: add flush operation for Tegra124 " Vince Hsu
[not found] ` <1426162518-7405-1-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-03-12 12:15 ` [PATCH v2 06/17] clk: tegra: remove TEGRA_PLL_USE_LOCK for PLLD/PLLD2 Vince Hsu
2015-03-12 12:15 ` [PATCH v2 10/17] ARM: tegra: add PM domain device nodes to Tegra124 DT Vince Hsu
2015-03-12 12:15 ` [PATCH v2 13/17] PCI: tegra: remove the power sequence from driver Vince Hsu
2015-03-12 12:15 ` [PATCH v2 07/17] soc: tegra: pmc: Add generic PM domain support Vince Hsu
2015-04-06 22:37 ` Kevin Hilman
2015-04-08 8:06 ` Thierry Reding [this message]
2015-03-12 12:15 ` [PATCH v2 08/17] ARM: tegra: add PM domain device nodes to Tegra30 DT Vince Hsu
2015-03-12 12:15 ` [PATCH v2 09/17] ARM: tegra: add PM domain device nodes to Tegra114 DT Vince Hsu
2015-03-12 12:15 ` [PATCH v2 11/17] ARM: tegra: add GPU power supply to Jetson TK1 DT Vince Hsu
2015-03-12 12:15 ` [PATCH v2 12/17] drm/tegra: dc: remove the power sequence from driver Vince Hsu
2015-03-12 12:15 ` [PATCH v2 14/17] ata: ahci_tegra: remove " Vince Hsu
2015-03-12 12:19 ` Tejun Heo
[not found] ` <20150312121912.GJ25944-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-03-12 12:23 ` Vince Hsu
[not found] ` <55018536.2050904-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-03-12 12:33 ` Hans de Goede
2015-03-12 12:15 ` [PATCH v2 15/17] drm/tegra: remove GR3D " Vince Hsu
2015-03-12 12:15 ` [PATCH v2 16/17] ARM: tegra: select PM_GENERIC_DOMAINS Vince Hsu
2015-03-12 12:15 ` [PATCH v2 17/17] soc/tegra: remove lagacy powergate APIs Vince Hsu
[not found] ` <1426162518-7405-18-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-03-12 12:45 ` Thierry Reding
2015-03-12 13:11 ` Vince Hsu
2015-03-12 16:18 ` Peter De Schrijver
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=20150408080629.GB26974@ulmo.nvidia.com \
--to=treding@nvidia.com \
--cc=airlied@linux.ie \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=gnurou@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=jroedel@suse.de \
--cc=khilman@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mturquette@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=pawel.moll@arm.com \
--cc=pdeschrijver@nvidia.com \
--cc=pgaikwad@nvidia.com \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@codeaurora.org \
--cc=swarren@wwwdotorg.org \
--cc=tbergstrom@nvidia.com \
--cc=thierry.reding@gmail.com \
--cc=tj@kernel.org \
--cc=vinceh@nvidia.com \
--cc=viresh.kumar@linaro.org \
--cc=will.deacon@arm.com \
/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).