From: ulf.hansson@linaro.org (Ulf Hansson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/9] PM / Domains: Add support for multi PM domains per device
Date: Fri, 18 May 2018 12:31:21 +0200 [thread overview]
Message-ID: <1526639490-12167-1-git-send-email-ulf.hansson@linaro.org> (raw)
There are devices that are partitioned across multiple PM domains. Currently
these can't be supported well by the available PM infrastructures we have in
the kernel. This series is an attempt to address this.
The interesting parts happens from patch 5 an onwards, including a minor DT
update to the existing power-domain bindings, the 4 earlier are just trivial
clean-ups of some related code in genpd, which I happened to stumble over.
Some additional background:
One existing case where devices are partitioned across multiple PM domains, is
the Nvida Tegra 124/210 X-USB subsystem. A while ago Jon Hunter (Nvidia) sent a
series, trying to address these issues, however this is a new approach, while
it re-uses the same concepts from DT point of view.
The Tegra 124/210 X-USB subsystem contains of a host controller and a device
controller. Each controller have its own independent PM domain, but are being
partitioned across another shared PM domain for the USB super-speed logic.
Currently to make the drivers work, either the related PM domains needs to stay
powered on always or the PM domain topology needs to be in-correctly modelled
through sub-domains. In both cases PM domains may be powered on while they
don't need to be, so in the end this means - wasting power -.
As stated above, this series intends to address these problem from a PM
infrastructure point of view. More details are available in each changelog.
It should be noted that this series has been tested on HW, however only by using
a home-cooked test PM domain driver for genpd and together with a test driver.
This allowed me to play with PM domain (genpd), runtime PM and device links.
Any further deployment for real use cases are greatly appreciated. I am happy to
to help, if needed!
Kind regards
Ulf Hansson
Ulf Hansson (9):
PM / Domains: Drop extern declarations of functions in pm_domain.h
PM / Domains: Drop __pm_genpd_add_device()
PM / Domains: Drop genpd as in-param for pm_genpd_remove_device()
PM / Domains: Drop unused parameter in genpd_allocate_dev_data()
PM / Domains: dt: Allow power-domain property to be a list of phandles
PM / Domains: Don't attach devices in genpd with multi PM domains
PM / Domains: Split genpd_dev_pm_attach()
PM / Domains: Add support for multi PM domains per device to genpd
PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM
domains
.../devicetree/bindings/power/power_domain.txt | 18 ++-
drivers/base/power/common.c | 33 ++++-
drivers/base/power/domain.c | 154 ++++++++++++++++-----
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 2 +-
include/linux/pm_domain.h | 79 +++++------
5 files changed, 208 insertions(+), 78 deletions(-)
--
2.7.4
next reply other threads:[~2018-05-18 10:31 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-18 10:31 Ulf Hansson [this message]
2018-05-18 10:31 ` [PATCH 1/9] PM / Domains: Drop extern declarations of functions in pm_domain.h Ulf Hansson
2018-05-18 10:31 ` [PATCH 2/9] PM / Domains: Drop __pm_genpd_add_device() Ulf Hansson
2018-05-18 10:31 ` [PATCH 3/9] PM / Domains: Drop genpd as in-param for pm_genpd_remove_device() Ulf Hansson
2018-05-18 10:31 ` [PATCH 4/9] PM / Domains: Drop unused parameter in genpd_allocate_dev_data() Ulf Hansson
2018-05-18 10:31 ` [PATCH 5/9] PM / Domains: dt: Allow power-domain property to be a list of phandles Ulf Hansson
2018-05-18 10:46 ` Geert Uytterhoeven
2018-05-18 10:31 ` [PATCH 6/9] PM / Domains: Don't attach devices in genpd with multi PM domains Ulf Hansson
2018-05-18 10:31 ` [PATCH 7/9] PM / Domains: Split genpd_dev_pm_attach() Ulf Hansson
2018-05-18 10:31 ` [PATCH 8/9] PM / Domains: Add support for multi PM domains per device to genpd Ulf Hansson
2018-05-22 14:31 ` Jon Hunter
2018-05-22 14:47 ` Ulf Hansson
2018-05-22 20:55 ` Jon Hunter
2018-05-23 4:51 ` Rajendra Nayak
2018-05-23 6:12 ` Ulf Hansson
2018-05-23 9:07 ` Jon Hunter
2018-05-23 9:27 ` Rajendra Nayak
2018-05-23 9:33 ` Ulf Hansson
2018-05-23 9:45 ` Jon Hunter
2018-05-23 9:47 ` Ulf Hansson
2018-05-23 10:22 ` Jon Hunter
2018-05-24 7:04 ` Ulf Hansson
2018-05-24 9:36 ` Jon Hunter
2018-05-24 12:17 ` Ulf Hansson
2018-05-24 14:34 ` Jon Hunter
2018-05-24 21:21 ` Ulf Hansson
2018-05-25 8:22 ` Jon Hunter
2018-05-18 10:31 ` [PATCH 9/9] PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM domains Ulf Hansson
2018-05-24 15:48 ` Jon Hunter
2018-05-24 21:11 ` Ulf Hansson
2018-05-25 8:31 ` Jon Hunter
2018-05-25 10:45 ` Ulf Hansson
2018-05-25 11:07 ` Jon Hunter
2018-05-25 12:34 ` 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=1526639490-12167-1-git-send-email-ulf.hansson@linaro.org \
--to=ulf.hansson@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).