[PATCH v5 00/11] PM / Domains: Generic OF-based support

Ulf Hansson
2014-09-19T18:27:53Z

Changes in v5:
- Converted dev_pm_domain_detach() to a void function
- Added a ->detach() callback to the PM domain struct, invoked from the
dev_pm_domain_detach().
- Make ACPI and genpd both assign the ->detach() callback at successfull
attachment.
- The above changes made it possible to make acpi_pm_domain_detach() to
be static, added a separate patch for that.

Changes in v4:
- Rebased patch "PM / Domains: Add generic OF-based PM domain look-up" -
and updated the author and the commit message.
- Adopted review comments for "PM / Domains: Add APIs to attach/detach
a PM domain for a device".
- Updated author and commit message for "ARM: exynos: Move to generic
PM domain DT bindings".
- Added some acks and reviewed by tags.
- Started to use the "--in-reply-to" option to git-send-email. It should
provide the option to show a better diffstat per patch.

Changes in v3:
- Aligned on terminology, now using "PM domain" in comments and commit
- messages/headers.
- Improved English and grammar in comments and commit messages/headers.
- Adopted proposal from Geert, to have compile-time-check wrapper
functions for the API that adds xlate_simple and xlate_onecell
providers.
- Renamed "domain_num" to "num_domains", in genpd_onecell_data struct.
- Handle non-contiguous arrays for onecell PM domain providers.
- Rebased the Exynos patch to follow the new genpd API changes.

Changes in v2:
- Fix the ACPI patch, it didn't even compile for CONFIG_ACPI.
- Updated some comments in code and in commit messages.
- Fixed the dev_pm_domain_attach API to handle EPROBE_DEFER properly.
- Rebased the ARM Exynos patch.
- Added some Tested-by tags.

This patchset has a bit of a history and some parts of it has been posted
earlier.

http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html

In the first revision I intentially didn't increase version number of the
patches, since I think it would have cause more confusion than clarity.

A summary of changes in V1 and since the last patchset, from the link above:
- Instead of letting driver core handling the device to power domain
binding/unbinding, follow the behavior of how the ACPI power domain
is handled.

This is a summary of what these patches are intended to do:

1)
Add generic power domain OF-based support which also includes APIs to handle
attach/detach of generic power domains to devices.

2)
Adding a common API to attach/detach power domains and include support for the
ACPI and the generic power domain in there.

3)
>From subsystem level code, at probe/remove, convert from invoking the ACPI
specific power domain attach/detach functions to the new common attach/detach
APIs.

4)
Add support for the AMBA bus to attach/detach power domains, using the new
common APIs.

5)
Convert Exynos to use the new generic power domain OF support.

Obviously, there are dependencies througout this patchset, which means if they
get accepted the all need to go together. It might also be convenient to share
them through an immutable branch.

Tomasz Figa (2):
PM / Domains: Add generic OF-based PM domain look-up
ARM: exynos: Move to generic PM domain DT bindings

Ulf Hansson (9):
PM / Domains: Add a detach callback to the struct dev_pm_domain
ACPI / PM: Assign the ->detach() callback when attaching the PM domain
PM / Domains: Add APIs to attach/detach a PM domain for a device
drivercore / platform: Convert to dev_pm_domain_attach|detach()
i2c: core: Convert to dev_pm_domain_attach|detach()
mmc: sdio: Convert to dev_pm_domain_attach|detach()
spi: core: Convert to dev_pm_domain_attach|detach()
amba: Add support for attach/detach of PM domains
ACPI / PM: Convert acpi_dev_pm_detach() into a static function

.../bindings/arm/exynos/power_domain.txt | 13 +-
.../devicetree/bindings/power/power_domain.txt | 49 ++++
arch/arm/mach-exynos/pm_domains.c | 78 +-----
drivers/acpi/device_pm.c | 71 ++---
drivers/amba/bus.c | 10 +-
drivers/base/platform.c | 15 +-
drivers/base/power/common.c | 52 ++++
drivers/base/power/domain.c | 289 +++++++++++++++++++++
drivers/i2c/i2c-core.c | 13 +-
drivers/mmc/core/sdio_bus.c | 4 +-
drivers/spi/spi.c | 12 +-
include/linux/acpi.h | 2 -
include/linux/pm.h | 12 +
include/linux/pm_domain.h | 52 ++++
kernel/power/Kconfig | 4 +
15 files changed, 535 insertions(+), 141 deletions(-)
create mode 100644 Documentation/devicetree/bindings/power/power_domain.txt

--
1.9.1