History log of /arch/arm/plat-samsung/pm.c
Revision Date Author Comments
2bb1ad17d66da3549eb4d23e264786a98f9ab17b 20-Mar-2014 Sachin Kamat <sachin.kamat@linaro.org> ARM: SAMSUNG: Remove hardware.h inclusion

The contents of this header file are not referenced anywhere in the
included .c files except in devs.c. Remove its inclusion. For devs.c,
explicitly include sizes.h header for SZ_* macros.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
b27899178c53226a5ff780a17657c84eb5e32338 17-Mar-2014 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Move common save/restore helpers to separate file

To separate legacy PM code from generic helpers, this patch moves the
generic register save/restore helpers to a new file called pm-common.c
that is compiled always when CONFIG_PM_SLEEP is enabled, to allow
platforms that do not want to use the legacy PM code use the generic
helpers.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
72551f6cf13e2f3a1d273b7007b5d7d7fd69c554 17-Mar-2014 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Move Samsung PM debug code into separate file

Not all Samsung SoC platforms are going to use the legacy Samsung PM
code enabled by CONFIG_SAMSUNG_PM_DEBUG. To allow using Samsung PM debug
helpers on such platforms, related code is moved to separate file and
a plat/pm-common.h header is added to separate legacy and generic code.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
d38688a69fd88269eae3c7c66ec34fb02fb04fd1 17-Mar-2014 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Consolidate PM debug functions

This patch removes one-line functions that was used just to pass
constant arguments to lower level functions. After previous patches the
need for those constants has been eliminated, so the main functions can
be called directly.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
99b2fc2b8b40256538332769f11f2fe6ee942f6c 17-Mar-2014 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Use debug_ll_addr() to get UART base address

This patch modifies Samsung PM debug helpers to use a multiplatform
friendly way of getting base address of debug UART port, so instead
of using a per-mach static macro, a generic debug_ll_addr() helper
is used.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
de7fe0807c08553b88028d039861a4b8ad04fc62 17-Mar-2014 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Save UART DIVSLOT register based on SoC type

The only SoC that does not have DIVSLOT register is S3C2410, so instead
of exporting a variable for platforms to set if DIVSLOT register should
be preserved, it's enough to simply check whether we are running on
a S3C2410 instead.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
334a1c70bb03d7077849e88d8571a32d1d36194d 14-Feb-2014 Tushar Behera <tushar.behera@linaro.org> ARM: SAMSUNG: Replace inclusion of plat/regs-serial.h header file

regs-serial.h only includes linux/serial_s3c.h. Include this header
directly to remove unnecessary platform dependency.

Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
[broonie@linaro.org: Acked for S3C64XX related changes]
Acked-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2857f650d5fa57bcd56a4efd4161e51ce1508255 18-Dec-2013 Kukjin Kim <kgene.kim@samsung.com> ARM: EXYNOS: remove <mach/regs-clock.h> for exynos

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
05a6380cef5ec2e832871a8bd591f6af4555c335 18-Dec-2013 Kukjin Kim <kgene.kim@samsung.com> ARM: EXYNOS: cleanup <mach/regs-irq.h>

Remove useless inclusion <mach/regs-irq.h> for exynos.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
c143751a6da99eaefa824745d87dcc71ec54e705 11-Dec-2013 Daniel Kurtz <djkurtz@chromium.org> ARM: SAMSUNG: Let s3c_pm_do_restore_*() take const sleep_save

The restore functions do not modify the passed in struct sleep_save,
so that parameter can be const.

This allows us to pass in const struct. This allows us to use const
structs sleep_save to define system registers that will always be
restored to a constant value.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
7bdc84fb82627f34d9e13c37926f70fcde38e4c4 24-Jul-2013 Yadwinder Singh Brar <yadi.brar@samsung.com> ARM: SAMSUNG: Save/restore only selected uart's registers

Basically this code gets executed only during debugging i.e when
DEBUG_LL & SAMSUNG_PM_DEBUG is on, so required only for UART used
for debugging. Since we are removing static iodesc entries for UARTs,
so now only the selected (CONFIG_DEBUG_S3C_UART) UART will be
ioremapped by the debug_ll_io_init() for DEBUG_LL, so save/restore
uart registers only for selected uart.

Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
d6280ffb44a3f9bf98efeb214fc46c6b551799f5 15-Jun-2013 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: Include most of mach/ headers conditionally

Since it is illegal to include mach/ headers from source files outside
of respective mach-* directory and DT-only Samsung platforms might not
have all of them anyway, this patches makes inclusion of them
conditional, based on CONFIG_SAMSUNG_ATAGS.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
cd3fc1b9a34e535a8acbead7461475fbc43bdd49 17-May-2013 Tomasz Figa <t.figa@samsung.com> ARM: SAMSUNG: pm: Adjust for pinctrl- and DT-enabled platforms

This patch makes legacy code on suspend/resume path being executed
conditionally, on non-DT platforms only, to fix suspend/resume of
DT-enabled systems, for which the code is inappropriate.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[olof: add #include <linux/of.h>]
Signed-off-by: Olof Johansson <olof@lixom.net>
7ba8022fc3a1d2434c1f038f022c5d69026319ca 05-Mar-2013 Arnd Bergmann <arnd@arndb.de> ARM: exynos: prepare for sparse IRQ

When we enable CONFIG_SPARSE_IRQ, we have to set the value of NR_IRQS in
the machine_desc for legacy IRQ domains, and any file referring to the
number of interrupts or a specific number must include the mach/irqs.h
header file explicitly.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
d3fcacf52d24ff1b12d994d9ddb7496f651294a2 25-Jan-2013 Abhilash Kesavan <a.kesavan@samsung.com> ARM: SAMSUNG: Gracefully exit on suspend failure

As per the Exynos5250 User Manual:
When there are pending interrupt events, WFI/WFE instruction are
ignored. To cancel the power-down sequence follow these steps:
1) Disable system power-down using CENTRAL_SEQ_CONFIGURATION register
2) Clear WAKEUP_STAT register
3) Enable interrupt service routine for CPU

Code for early wakeup for exynos already exists. Remove the panic
on suspend failure, clear the wakeup state register and return 1
from cpu_suspend to indicate a failed suspend (to a user daemon).

Older Samsung SoCs have similar panics and I have removed them all.
Haven't touched the S3C2410 sleep code.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
8baaa265c5e8e378cb60164f47e24bf296a6d685 25-Jan-2013 Chen Gang <gang.chen@asianux.com> ARM: SAMSUNG: using vsnprintf instead of vsprintf for the limit buffer length 256

the buff is 256 limited, so need use vsnprintf instead of vsprintf

Signed-off-by: Chen Gang <gang.chen@asianux.com>
Cc: Ben Dooks <ben@fluff.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
c0401241c01705205ed6f2b88460df1133591f58 07-Aug-2012 Sachin Kamat <sachin.kamat@linaro.org> ARM: Samsung: Make uart_save static in pm.c file

Fixes the following sparse warning:
arch/arm/plat-samsung/pm.c:77:21:
warning: symbol 'uart_save' was not declared. Should it be static?

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
782d8a3c0bdf23ec24fc8facb5af8510b2cf6de1 30-Aug-2011 Kukjin Kim <kgene.kim@samsung.com> ARM: SAMSUNG: Update the name of regarding Samsung GPIO

According to gpio-samsung.c, this patch updates the name of
regarding Samsung GPIO. Basically the samsung_xxx prefix is
used in gpio-samsung.c instead of s3c_xxx, because unified
name can reduce its complexity.

Note: some s3c_xxx stil remains because it is used widely.
It will be updated next time.

Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
1bac282af43d81d826ef25945a35536fa9bd041d 01-Jun-2011 Ben Dooks <ben-linux@fluff.org> ARM: SAMSUNG: Add support for pre-sleep/post-restore gpio control

Add a callback so that per-arch can do pre-sleep and post-resume
gpio configuration so that for the S3C64XX, the GPIO configuration
is restored before the sleep mode is cleared.

For the S3C64XX case, it means that the GPIOs get set back to normal
operation after the restore code puts the original configurations
back in after the

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
29cb3cd208dd0e4471bb80bec4facc49ceb199fa 02-Jul-2011 Russell King <rmk+kernel@arm.linux.org.uk> ARM: pm: allow suspend finisher to return error codes

There are SoCs where attempting to enter a low power state is ignored,
and the CPU continues executing instructions with all state preserved.
It is over-complex at that point to disable the MMU just to call the
resume path.

Instead, allow the suspend finisher to return error codes to abort
suspend in this circumstance, where the cpu_suspend internals will then
unwind the saved state on the stack. Also omit the tlb flush as no
changes to the page tables will have happened.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2c74a0cefa463a7a483b07ba4d2ea8e4ec7b996c 22-Jun-2011 Russell King <rmk+kernel@arm.linux.org.uk> ARM: pm: hide 1st and 2nd arguments to cpu_suspend from platform code

The first and second arguments shouldn't concern platform code, so
hide them from each platforms caller.

Tested-by: Kevin Hilman <khilman@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
e7089da9567fa8da37e35e1f81a5e3579d0d582d 21-Jun-2011 Russell King <rmk+kernel@arm.linux.org.uk> ARM: pm: samsung: move cpu_suspend into C code

Move the call to cpu_suspend into C code, and noticing that all the
s3c_cpu_save implementations are now identical, we can move this
into the common samsung code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
14cd8fd574bce1cfbe510ccb1f73c7c1024d770f 21-Jun-2011 Russell King <rmk+kernel@arm.linux.org.uk> ARM: pm: move cpu_init() call into core code

As we have core code dealing with CPU suspend/resume, we can
re-initialize the CPUs exception banked registers via that code rather
than having platforms deal with that level of detail. So, move the
call to cpu_init() out of platform code into core code.

Tested-by: Kevin Hilman <khilman@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
baab7307c7af963fbd993149d50dd45232b9d04c 02-Apr-2011 Maurus Cuelenaere <mcuelenaere@gmail.com> ARM: SAMSUNG: Fix warning 's3c_pm_show_resume_irqs' defined but not used

s3c_pm_show_resume_irqs() is used by some s3c_pm_arch_show_resume_irqs()
implementations, which get included through mach/pm-core.h. Add __maybe_unused
to silence warnings when it isn't used (e.g. on S3C64XX platforms).

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2e2f3d3792de5913897b6bb49ac13915b0b020d5 06-Feb-2011 Russell King <rmk+kernel@arm.linux.org.uk> ARM: pm: convert samsung platforms to generic suspend/resume support

Tested-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
f5aeffb784f35f82b048969a4d7bcca42c783c84 02-Dec-2010 Mark Brown <broonie@opensource.wolfsonmicro.com> ARM: SAMSUNG: Convert s3c_irqext_wake() to new irq_ interrupt methods

Kernel 2.6.37 adds new interrupt methods which take a struct irq_data
rather than an irq number. Begin converting Samsung platforms over to
these methods by converting s3c_irqext_wake() with a simple textual
substitution.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2f55ac072f5344519348c0c94b3d2f4cca46847b 16-Nov-2010 Lionel Debroux <lionel_debroux@yahoo.fr> suspend: constify platform_suspend_ops

While at it, fix two checkpatch errors.
Several non-const struct instances constified by this patch were added after
the introduction of platform_suspend_ops in checkpatch.pl's list of "should
be const" structs (79404849e90a41ea2109bd0e2f7c7164b0c4ce73).

Patch against mainline.
Inspired by hunks of the grsecurity patch, updated for newer kernels.

Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
806c17b5497f62faa65a1fdd235b7fa2df17d704 29-Jan-2010 Ben Dooks <ben-linux@fluff.org> ARM: SAMSUNG: Move pm.c to plat-samsung

Move pm.c to plat-samsung, it should be usable by all Samsung systems

Signed-off-by: Ben Dooks <ben-linux@fluff.org>