[lkml]   [2014]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v11 0/6] amba/dmaengine: pl330: add Power Management support

Changes since v10:
1. Bring back wrapper pm_runtime_is_irq_safe() (patch 1/6). This
replaces patch 1/5 from v9 (moving dev->power.irq_safe out of
2. Patch 3/6 amba: Don't store current irq_safe during runtime suspend
(suggested by Rafael J. Wysocki).
Because of this change I dropped reviewed-by tags from this patch.
3. Patch 4/6 pl330: Add only runtime PM, without system PM (minor
changes to the patch so I retained the revewed/acked tags).
Add ack from Vinod.
4. Add patch 5/6 pl330: Add system PM to the pl330 which *does not*
depends on runtime PM. I followed the discusions on LKML trying to
reach consensus.
Reasons tosplit previous patch into two patches (1st: runtime,
2nd: system PM):
- easier review,
- the first part (runtime PM) could be applied independently to
system PM support.
6. Patch 6/6 amba: reworked the amba_pclk_* macros into inlines. Previously
they were not used but now patch 5/6 depends on them.
7. Rebase on next-20141112.

Changes since v9:
1. Add patch 1/5: Move dev->power.irq_safe out of CONFIG_PM_RUNTIME.
If CONFIG_PM_RUNTIME is not set, amba bus driver must still know
whether child driver set irq_safe or not. Suggested by Ulf Hansson.

Changes since v8:
1. Remove the pm_runtime_is_irq_safe() wrapper (patch 1).
2. Patch 2/4 (amba): Store current irq_safe during runtime suspend.
Resume will mirror suspend's work. Add a macro for
safe access of irq_safe if CONFIG_PM_RUNTIME is unset.
Dropped reviewed-by Ulf Hansson (major changes in patch).

Changes since v7:
1. Add reviewed-by Ulf Hansson (patches 3, 4 and 5).
2. Patch 2/5: Fix missing return in amba_pclk_prepare() (suggested by
Ulf Hansson).
3. Rebased on next-20141020.

Changes since v6:
1. Add patch 5 removing the amba_pclk_*able macros.
2. Patch 2/5: Remove IS_ERR, use static inline functions instead
of macros.
3. Patch 4/5: Force runtime suspend/resume in system sleep
callbacks. Put with autosuspend at end of probe instead of no_idle.
Suggested by Ulf Hansson.

Changes since v5:
1. Patch 1/4: Add Ulf Hansson's reviewed-by.
2. Patch 4/4: Use PM runtime autosuspend (suggested by Ulf Hansson).
3. Rebase on next-20140922.

Changes since v4:
1. Patch 3/4: Explicitly initialize amba_device.irq_safe field after
probing driver (suggested by Russell King).

Changes since v3:
1. Patch 1/4: Document new API in Documentation/power/runtime_pm.txt
(pointed by Alan Stern).

Changes since v2:
1. Add patch 1 (PM / Runtime: Add getter for querying the IRQ safe option)
2. Add patch 2 (amba: Add helper macros for (un)preparing AMBA clock)
3. Patch 3/4: Rewrite the idea. If IRQ safe runtime PM is set then
do not unprepare/prepare the clocks. Suggested by Russell King.
4. Patch 4/4: During system sleep unprepare the clock.

Changes since v1:
1. Add patch 1 (amba: Allow AMBA drivers to use their own runtime PM).
2. Patch 2/2: Apply Michal Simek's suggestions.
3. Patch 2/2: Fix atomic context safeness in pl330_issue_pending().

This patchset adds runtime and system PM to the pl330 driver.

The runtime PM of pl330 driver requires interrupt safe suspend/resume
callbacks which is in conflict with current amba bus driver.
The latter also unprepares and prepares the AMBA bus clock which
is not safe for atomic context.

The patchset solves this in patch 3/6 by handling clocks in different
way if device driver set interrupt safe runtime PM.

Comments are welcome.

Tested on board with pl330 DMA driver:
- Trats2 (Exynos4212)

Best regards,
Krzysztof Kozlowski

Krzysztof Kozlowski (6):
PM / Runtime: Add getter for querying the IRQ safe option
amba: Add helpers for (un)preparing AMBA clock
amba: Don't unprepare the clocks if device driver wants IRQ safe
runtime PM
dmaengine: pl330: Add runtime Power Management support
dmaengine: pl330: Add PM sleep support
amba: Use inlines instead of macros for amba_pclk_enable/disable

Documentation/power/runtime_pm.txt | 4 ++
drivers/amba/bus.c | 15 ++++--
drivers/dma/pl330.c | 95 ++++++++++++++++++++++++++++++++++++--
include/linux/amba/bus.h | 22 +++++++--
include/linux/pm_runtime.h | 6 +++
5 files changed, 130 insertions(+), 12 deletions(-)


 \ /
  Last update: 2014-11-12 16:01    [W:0.082 / U:0.648 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site