linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org,
	linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Joerg Roedel <joro@8bytes.org>, Inki Dae <inki.dae@samsung.com>,
	Kukjin Kim <kgene@kernel.org>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Mark Brown <broonie@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v2 00/10] Exynos IOMMU: proper runtime PM support (use device dependencies)
Date: Fri, 17 Jun 2016 08:26:50 +0200	[thread overview]
Message-ID: <1466144820-6286-1-git-send-email-m.szyprowski@samsung.com> (raw)

Hello,

This patch series finally implements proper runtime PM support in Exynos
IOMMU driver. This has been achieved by using device links, which lets
SYSMMU controller's runtime PM to follow master's device runtime PM (the
device which actually performs DMA transaction). The main idea
behind this solution is an observation that any DMA activity from master
device can be done only when master device is active, thus when master
device is suspended SYSMMU controller device can also be suspended.

This patchset solves the situation that power domains are always enabled,
because all SYSMMU controllers (which belongs to those domains) are
permanently active (because existing driver was simplified and kept
SYSMMU device active all the time after initialization).

Patches 1-5 are resend of the "[RFC][PATCH 0/5] Functional dependencies
between devices" patchset:
http://thread.gmane.org/gmane.linux.power-management.general/67424/focus=2126379
I've included them here, because it is hard to find them all on mailing
list archives.

Patches 6-8 are fixes to device dependencies/links code, which were
required to use this solution for Exynos IOMMU driver. I'm not PM/runtime
PM code expert, so please double check if my changes are really correct.

This patchset requires my previous changes to Exynos IOMMU driver
submitted in the "Exynos IOMMU: improve clock management" thread:
http://www.spinics.net/lists/arm-kernel/msg505695.html

Best regards
Marek Szyprowski
Samsung R&D Institute Poland


Changelog:
v2:
- replaced PM notifiers with generic device dependencies/links developped
  by Rafael J. Wysocki

v1: http://www.spinics.net/lists/arm-kernel/msg509600.html
- initial version


Patch summary:

Marek Szyprowski (5):
  driver core: Avoid endless recursion if device has more than one link
  driver core: Add support for links to already probed drivers
  PM core: Fix restoring devices with links during system PM transition
  iommu/exynos: Remove excessive, useless debug
  iommu/exynos: Add proper runtime pm support

Rafael J. Wysocki (5):
  driver core: Add a wrapper around __device_release_driver()
  driver core: Functional dependencies tracking support
  PM core: Make async suspend/resume of devices use device links
  PM core: Make runtime PM of devices use device links
  PM core: Optimize the use of device links for runtime PM

 drivers/base/base.h          |  13 ++
 drivers/base/core.c          | 410 +++++++++++++++++++++++++++++++++++++++++++
 drivers/base/dd.c            |  65 +++++--
 drivers/base/power/main.c    |  68 ++++++-
 drivers/base/power/runtime.c | 130 +++++++++++++-
 drivers/iommu/exynos-iommu.c | 221 +++++++++++------------
 include/linux/device.h       |  41 +++++
 include/linux/pm.h           |   1 +
 include/linux/pm_runtime.h   |   6 +
 9 files changed, 809 insertions(+), 146 deletions(-)

-- 
1.9.1

             reply	other threads:[~2016-06-17  6:27 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17  6:26 Marek Szyprowski [this message]
2016-06-17  6:26 ` [PATCH v2 01/10] driver core: Add a wrapper around __device_release_driver() Marek Szyprowski
2016-06-17  6:26 ` [PATCH v2 02/10] driver core: Functional dependencies tracking support Marek Szyprowski
2016-06-17 10:36   ` Lukas Wunner
2016-06-17 12:54     ` Rafael J. Wysocki
2016-06-17 14:07       ` Lukas Wunner
2016-07-20  0:33         ` Rafael J. Wysocki
2016-07-20  6:24           ` Lukas Wunner
2016-07-20 12:52             ` Rafael J. Wysocki
2016-07-20 15:23               ` Lukas Wunner
2016-07-20 22:51                 ` Rafael J. Wysocki
2016-07-20 23:25                   ` Lukas Wunner
2016-07-21  0:25                     ` Rafael J. Wysocki
2016-07-24 22:48                       ` Lukas Wunner
2016-07-28  0:30                         ` Rafael J. Wysocki
2016-07-28 15:28                           ` Lukas Wunner
2016-09-06 23:57                             ` Rafael J. Wysocki
2016-06-17  6:26 ` [PATCH v2 03/10] PM core: Make async suspend/resume of devices use device links Marek Szyprowski
2016-06-17  6:26 ` [PATCH v2 04/10] PM core: Make runtime PM " Marek Szyprowski
2016-06-17  6:26 ` [PATCH v2 05/10] PM core: Optimize the use of device links for runtime PM Marek Szyprowski
2016-06-17  6:26 ` [PATCH v2 06/10] driver core: Avoid endless recursion if device has more than one link Marek Szyprowski
2016-09-06 23:09   ` Rafael J. Wysocki
2016-06-17  6:26 ` [PATCH v2 07/10] driver core: Add support for links to already probed drivers Marek Szyprowski
2016-09-06 23:13   ` Rafael J. Wysocki
2016-06-17  6:26 ` [PATCH v2 08/10] PM core: Fix restoring devices with links during system PM transition Marek Szyprowski
2016-09-06 23:24   ` Rafael J. Wysocki
2016-06-17  6:26 ` [PATCH v2 09/10] iommu/exynos: Remove excessive, useless debug Marek Szyprowski
2016-06-17  6:27 ` [PATCH v2 10/10] iommu/exynos: Add proper runtime pm support Marek Szyprowski
2016-07-14 15:41 ` [PATCH v2 00/10] Exynos IOMMU: proper runtime PM support (use device dependencies) Tobias Jakobi
2016-07-15 13:21   ` Tobias Jakobi
2016-07-18 10:32     ` Marek Szyprowski
2016-07-18 11:00       ` Tobias Jakobi
2016-07-18 13:50         ` Marek Szyprowski
2016-07-18 16:43           ` Tobias Jakobi
2016-07-19  6:26             ` Marek Szyprowski
2016-07-24 18:02               ` Tobias Jakobi

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=1466144820-6286-1-git-send-email-m.szyprowski@samsung.com \
    --to=m.szyprowski@samsung.com \
    --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=k.kozlowski@samsung.com \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --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;
as well as URLs for NNTP newsgroup(s).