[PATCH v9 0/2] hibernation support on ARM

Sebastian Capella sebastian.capella at linaro.org
Tue Mar 18 17:40:56 EDT 2014


Cc: Russ Dill <Russ.Dill at ti.com>
Cc: "Rafael J. Wysocki" <rjw at rjwysocki.net>
Cc: Russell King <linux at arm.linux.org.uk>
Cc: Pavel Machek <pavel at ucw.cz>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi at arm.com>
Cc: Stephen Warren <swarren at nvidia.com>
Cc: Len Brown <len.brown at intel.com>
Cc: Nicolas Pitre <nico at linaro.org>
Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
Cc: Will Deacon <will.deacon at arm.com>
Cc: Jonathan Austin <jonathan.austin at arm.com>
Cc: Catalin Marinas <catalin.marinas at arm.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig at pengutronix.de>
Cc: Stephen Boyd <sboyd at codeaurora.org>
Cc: Laura Abbott <lauraa at codeaurora.org>
Cc: Jiang Liu <liuj97 at gmail.com>
Cc: Sricharan R <r.sricharan at ti.com>
Cc: Victor Kamensky <victor.kamensky at linaro.org>
Cc: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
Cc: Ben Dooks <ben.dooks at codethink.co.uk>
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Robin Holt <robin.m.holt at gmail.com>
Cc: Konstantin Khlebnikov <k.khlebnikov at samsung.com>
Cc: Steven Capper <steve.capper at linaro.org>
Cc: Tejun Heo <tj at kernel.org>


Patches adding support for hibernation on ARM
 - ARM hibernation / suspend-to-disk
 - Change soft_restart to use non-tracing raw_local_irq_disable

Patches based on v3.14-rc7 tag, verified hibernation on beaglebone black on a
branch based on 3.13 merged with initial omap support from Russ Dill which
can be found here (includes v1 patchset):
http://git.linaro.org/git-ro/people/sebastian.capella/linux.git hibernation_3.13_russMerge

[PATCH v9 1/2] ARM: avoid tracers in soft_restart
 arch/arm/kernel/process.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

 Use raw_local_irq_disable in place of local_irq_disable to avoid
 infinite abort recursion while tracing. (unchanged since v3)

[PATCH v9 2/2] ARM hibernation / suspend-to-disk
 arch/arm/Kconfig              |    5 ++
 arch/arm/include/asm/memory.h |    1 +
 arch/arm/kernel/Makefile      |    1 +
 arch/arm/kernel/hibernate.c   |  107 +++++++++++++++++++++++++++++++++++++++++
 include/linux/suspend.h       |    2 +
 5 files changed, 116 insertions(+)

 Adds support for ARM based hibernation


Additional notes:
-----------------

There are two checkpatch warnings added by this patch.  These follow
behavior in existing hibernation implementations on other platforms.


    WARNING: externs should be avoided in .c files
    #131: FILE: arch/arm/kernel/hibernate.c:25:
    +extern const void __nosave_begin, __nosave_end;

  This extern is picking up the linker nosave region definitions, only
  used in hibernate.  Follows same extern line used mips, powerpc, s390,
  sh, sparc, x86 & unicore32

    WARNING: externs should be avoided in .c files
    #209: FILE: arch/arm/kernel/hibernate.c:103:
    +	extern void call_with_stack(void (*fn)(void *), void *arg, void *sp);

  This extern is used in the arch/arm/ in hibernate, process and bL_switcher


Changes in v9:
--------------
* replace pfn calculationwith virt_to_pfn
* automatically allow ARCH_HIBERNATION_POSSIBLE if SUSPEND permitted
* move handling of ARCH config flag to arch/arm/Kconfig

Changes in v8:
--------------
* remove definition and use of __pa_symbol

Changes in v7:
--------------
* remove use of RELOC_HIDE macro
* remove unused #includes
* fixup comment for arch_restore_image
* ensure alignment of resume stack on 8 byte boundary

Changes in v6:
--------------
* Simplify static variable names

Changes in v5:
--------------
* Fixed checkpatch warning on trailing whitespace

Changes in v4:
--------------
* updated comment for soft_restart with review feedback
* dropped freeze_processes patch which was queued separately 
  to 3.14 by Rafael Wysocki:
  https://lkml.org/lkml/2014/2/25/683

Changes in v3:
--------------
* added comment to use of soft_restart
* drop irq disable soft_restart patch
* add patch to avoid tracers in soft_restart by using raw_local_irq_*

Changes in v2:
--------------
* Removed unneeded flush_thread, use of __naked and cpu_init.
* dropped Cyril Chemparathy <cyril at ti.com> from Cc: list as 
  emails are bouncing.

Thanks,

Sebastian Capella




More information about the linux-arm-kernel mailing list