linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs
@ 2014-08-26 14:10 Tomasz Figa
  2014-08-26 14:10 ` [PATCH v3 1/5] ARM: firmware: Introduce suspend and resume operations Tomasz Figa
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Tomasz Figa @ 2014-08-26 14:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Exynos-based boards running secure firmware the sequence of low level
operations to enter and leave system-wide sleep mode is different than
on those without the firmware. Namely:
 - CP15 power control and diagnostic registers cannot be written directly,
 - the way of setting boot address and boot flag is different,
 - different resume handler needs to be used,
 - dedicated SMC call needs to be performed instead of letting the CPU enter
   WFI.

This series introduces .suspend() and .resume() firmware operations to
perform low level firmware-specific suspend and resume and then leverages
them to provide suspend-resume path meeting the above requirements. Three
additional patches extend device tree sources of Trats2 board with necessary
setup to enable suspend/resume support.

This series has been tested on Exynos4412-based Trats2 board, without any
additional patches. Unfortunately v3.17-rc1 regressed ODROID support and
suspend stopped working on those boards, due to unknown reasons still being
investigated. It does not seem to be related to anything in this series,
though, so I would not consider this as a stopper.

Changes since v2:
(https://lkml.org/lkml/2014/7/17/431)
 - added board-specific fixes for device tree sources of Trats2 board,
 - rebased on next-20140826 of linux-next tree.

Changes since v1:
 - dropped outer_resume() - will be handled in assembly in further patches,
   as support for L2C in non-secure mode gets added,
 - moved CP15 resume to assembly as it needs to be done before MMU is enabled,
 - surrounded CP15 save with a check for cpuid part, because it is valid only
   on Cortex A9,
 - rebased on next-20140717 tag of linux-next tree.

Tomasz Figa (5):
  ARM: firmware: Introduce suspend and resume operations
  ARM: EXYNOS: Add support for firmware-assisted suspend/resume
  ARM: dts: exynos4412-trats2: Keep eMMC regulators soft-disabled
  ARM: dts: exynos4x12: Add utility macro to define pin sleep states
  ARM: dts: exynos4412-trats2: Add sleep mode pin configuration

 Documentation/arm/firmware.txt            |  28 +--
 arch/arm/boot/dts/exynos4412-trats2.dts   | 320 +++++++++++++++++++++++++++++-
 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi |  16 ++
 arch/arm/include/asm/firmware.h           |   8 +
 arch/arm/mach-exynos/Makefile             |   1 +
 arch/arm/mach-exynos/common.h             |   4 +
 arch/arm/mach-exynos/firmware.c           |  45 +++++
 arch/arm/mach-exynos/pm.c                 |  16 +-
 arch/arm/mach-exynos/sleep.S              |  28 +++
 arch/arm/mach-exynos/smc.h                |   4 +
 10 files changed, 438 insertions(+), 32 deletions(-)

-- 
2.0.4

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-09-24  8:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-26 14:10 [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 1/5] ARM: firmware: Introduce suspend and resume operations Tomasz Figa
2014-09-23 16:31   ` Kukjin Kim
2014-08-26 14:10 ` [PATCH v3 2/5] ARM: EXYNOS: Add support for firmware-assisted suspend/resume Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 3/5] ARM: dts: exynos4412-trats2: Keep eMMC regulators soft-disabled Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 4/5] ARM: dts: exynos4x12: Add utility macro to define pin sleep states Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 5/5] ARM: dts: exynos4412-trats2: Add sleep mode pin configuration Tomasz Figa
2014-09-14 17:47 ` [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs Tomasz Figa
2014-09-15  0:21   ` Kukjin Kim
2014-09-24  7:53     ` Kukjin Kim
2014-09-24  8:23       ` Marek Szyprowski
2014-09-24  8:42         ` Kukjin Kim

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).