From: Lukas Wunner <lukas@wunner.de>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
"Luis R. Rodriguez" <mcgrof@kernel.org>,
Linux PM <linux-pm@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"open list:AMD IOMMU (AMD-VI)" <iommu@lists.linux-foundation.org>,
Linux Samsung SoC <linux-samsung-soc@vger.kernel.org>,
Joerg Roedel <joro@8bytes.org>, Inki Dae <inki.dae@samsung.com>,
Kukjin Kim <kgene@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Mark Brown <broonie@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
Kevin Hilman <khilman@kernel.org>,
Tobias Jakobi <tjakobi@math.uni-bielefeld.de>,
Tomasz Figa <tomasz.figa@gma>
Subject: Re: [PATCH v5 7/7] iommu/exynos: Use device dependency links to control runtime pm
Date: Wed, 16 Nov 2016 10:30:55 +0100 [thread overview]
Message-ID: <20161116093055.GA11230@wunner.de> (raw)
In-Reply-To: <CAJZ5v0i3_8AE_o7vx=5kyuc8+P0jFOvjTC3YB9gcJVyQ+pTSkA@mail.gmail.com>
On Thu, Nov 10, 2016 at 12:56:14AM +0100, Rafael J. Wysocki wrote:
> The idea, roughly, is that if there is a single on/off switch acting
> on multiple devices, you can (a) set up a PM domain tracking all of
> those device's runtime PM invocations and (b) maintaining a reference
> counter of devices still not suspended. This way it would only turn
> the switch off when all of the devices in question had been suspended.
> Analogously, it would turn the switch on before resuming the first
> device in the domain. Of course, that code isn't available as a
> library, you would need to implement it (or use genpd, but chances are
> it is too heavy weight for the job).
My understanding is that the hierarchy of struct generic_pm_domain
is created by the platform on boot. For an embedded platform, this
is encoded in the device tree, but what about ACPI which doesn't
know anything about struct generic_pm_domain? I would have to lump
devices into generic_pm_domains after the fact, after the platform
has scanned the buses, but this seems to be forbidden according to
this slide deck, which calls that a "layering violation":
https://events.linuxfoundation.org/images/stories/pdf/lcjp2012_wysocki.pdf
(Quote: "Adding and Removing Devices [...] Supposed to be called by
the platform (calling one of them from a device driver is a layering
violation).")
So it seems that using struct generic_pm_domain is never an option
on ACPI, is that correct?
Thanks,
Lukas
WARNING: multiple messages have this Message-ID (diff)
From: Lukas Wunner <lukas@wunner.de>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
"Luis R. Rodriguez" <mcgrof@kernel.org>,
Linux PM <linux-pm@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"open list:AMD IOMMU (AMD-VI)" <iommu@lists.linux-foundation.org>,
Linux Samsung SoC <linux-samsung-soc@vger.kernel.org>,
Joerg Roedel <joro@8bytes.org>, Inki Dae <inki.dae@samsung.com>,
Kukjin Kim <kgene@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Mark Brown <broonie@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
Kevin Hilman <khilman@kernel.org>,
Tobias Jakobi <tjakobi@math.uni-bielefeld.de>,
Tomasz Figa <tomasz.figa@gmail.com>,
Grant Likely <grant.likely@secretlab.ca>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Lars-Peter Clausen <lars@metafoo.de>,
Andrzej Hajda <a.hajda@samsung.com>,
Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>
Subject: Re: [PATCH v5 7/7] iommu/exynos: Use device dependency links to control runtime pm
Date: Wed, 16 Nov 2016 10:30:55 +0100 [thread overview]
Message-ID: <20161116093055.GA11230@wunner.de> (raw)
In-Reply-To: <CAJZ5v0i3_8AE_o7vx=5kyuc8+P0jFOvjTC3YB9gcJVyQ+pTSkA@mail.gmail.com>
On Thu, Nov 10, 2016 at 12:56:14AM +0100, Rafael J. Wysocki wrote:
> The idea, roughly, is that if there is a single on/off switch acting
> on multiple devices, you can (a) set up a PM domain tracking all of
> those device's runtime PM invocations and (b) maintaining a reference
> counter of devices still not suspended. This way it would only turn
> the switch off when all of the devices in question had been suspended.
> Analogously, it would turn the switch on before resuming the first
> device in the domain. Of course, that code isn't available as a
> library, you would need to implement it (or use genpd, but chances are
> it is too heavy weight for the job).
My understanding is that the hierarchy of struct generic_pm_domain
is created by the platform on boot. For an embedded platform, this
is encoded in the device tree, but what about ACPI which doesn't
know anything about struct generic_pm_domain? I would have to lump
devices into generic_pm_domains after the fact, after the platform
has scanned the buses, but this seems to be forbidden according to
this slide deck, which calls that a "layering violation":
https://events.linuxfoundation.org/images/stories/pdf/lcjp2012_wysocki.pdf
(Quote: "Adding and Removing Devices [...] Supposed to be called by
the platform (calling one of them from a device driver is a layering
violation).")
So it seems that using struct generic_pm_domain is never an option
on ACPI, is that correct?
Thanks,
Lukas
next prev parent reply other threads:[~2016-11-16 9:30 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20161020072330eucas1p2b09ad8d091171edbac9449815fdc0fb7@eucas1p2.samsung.com>
2016-10-20 7:22 ` [PATCH v5 0/7] Exynos IOMMU: proper runtime PM support (use device dependencies) Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
[not found] ` <CGME20161020072331eucas1p1af7dc7270b0b19168b949f3416eda474@eucas1p1.samsung.com>
[not found] ` <1476948173-21093-1-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-10-20 7:22 ` [PATCH v5 1/7] iommu/exynos: Remove excessive, useless debug Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
2016-10-20 7:22 ` [PATCH v5 2/7] iommu/exynos: Remove dead code Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
2016-10-20 7:22 ` [PATCH v5 3/7] iommu/exynos: Simplify internal enable/disable functions Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
2016-10-20 7:22 ` [PATCH v5 5/7] iommu/exynos: Rework and fix internal locking Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
2016-10-20 7:22 ` [PATCH v5 6/7] iommu/exynos: Add runtime pm support Marek Szyprowski
2016-10-20 7:22 ` Marek Szyprowski
[not found] ` <1476948173-21093-7-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-10-22 5:50 ` Sricharan
2016-10-22 5:50 ` Sricharan
2016-10-24 5:19 ` Marek Szyprowski
2016-10-24 12:15 ` Sricharan
2016-10-24 12:15 ` Sricharan
2016-10-20 7:22 ` [PATCH v5 4/7] iommu/exynos: Set master device once on boot Marek Szyprowski
2016-10-20 7:22 ` [PATCH v5 7/7] iommu/exynos: Use device dependency links to control runtime pm Marek Szyprowski
[not found] ` <1476948173-21093-8-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-10-23 9:49 ` Sricharan
2016-10-23 9:49 ` Sricharan
2016-10-24 5:30 ` Marek Szyprowski
2016-10-24 5:30 ` Marek Szyprowski
2016-10-24 12:29 ` Sricharan
2016-10-24 12:29 ` Sricharan
2016-10-24 12:39 ` Marek Szyprowski
[not found] ` <bff28d5b-3b39-a5bb-b381-2d7626566a2d-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-10-25 6:53 ` Sricharan
2016-10-25 6:53 ` Sricharan
2016-11-07 21:47 ` Luis R. Rodriguez
2016-11-07 21:47 ` Luis R. Rodriguez
2016-11-08 7:27 ` Marek Szyprowski
2016-11-08 7:27 ` Marek Szyprowski
2016-11-08 15:30 ` Lukas Wunner
2016-11-08 15:30 ` Lukas Wunner
2016-11-09 23:55 ` Luis R. Rodriguez
2016-11-09 23:55 ` Luis R. Rodriguez
2016-11-10 0:05 ` Rafael J. Wysocki
2016-11-10 0:05 ` Rafael J. Wysocki
2016-11-10 0:12 ` Luis R. Rodriguez
2016-11-10 0:12 ` Luis R. Rodriguez
2016-11-10 0:20 ` Rafael J. Wysocki
2016-11-10 0:20 ` Rafael J. Wysocki
2016-11-09 23:56 ` Rafael J. Wysocki
2016-11-09 23:56 ` Rafael J. Wysocki
2016-11-16 9:30 ` Lukas Wunner [this message]
2016-11-16 9:30 ` Lukas Wunner
2016-11-19 11:11 ` Lukas Wunner
2016-11-19 11:11 ` Lukas Wunner
2016-11-21 13:11 ` Marek Szyprowski
2016-11-21 13:11 ` Marek Szyprowski
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=20161116093055.GA11230@wunner.de \
--to=lukas@wunner.de \
--cc=b.zolnierkie@samsung.com \
--cc=broonie@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=inki.dae@samsung.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=kgene@kernel.org \
--cc=khilman@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mcgrof@kernel.org \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
--cc=tjakobi@math.uni-bielefeld.de \
--cc=tomasz.figa@gma \
--cc=tomeu.vizoso@collabora.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 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.