[PATCH v3 0/4] amba/dma: pl330: add Power Management support

From: Krzysztof Kozlowski
Date: Mon Sep 15 2014 - 06:14:46 EST


Hi,


This is third version of patches adding runtime 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/4 by handling clocks in different
way if device driver set interrupt safe runtime PM.

Any comments are welcome.

Tested on boards with pl330 DMA driver:
- Trats2 (Exynos4212)
- Samsung Gear2-like development board (Exynos3250)


Changes since v2:
=================
1. Add patch 1 (PM / Runtime: Add getter for quering 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().


Best regards,
Krzysztof Kozlowski


Krzysztof Kozlowski (4):
PM / Runtime: Add getter for quering the IRQ safe option
amba: Add helper macros for (un)preparing AMBA clock
amba: Don't unprepare the clocks if device driver wants IRQ safe
runtime PM
dma: pl330: add Power Management support

drivers/amba/bus.c | 30 +++++++++++++++---
drivers/dma/pl330.c | 77 +++++++++++++++++++++++++++++++++++++++++++---
include/linux/amba/bus.h | 7 +++++
include/linux/pm_runtime.h | 6 ++++
4 files changed, 112 insertions(+), 8 deletions(-)

--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/