Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef5a621b authored by Lorenzo Pieralisi's avatar Lorenzo Pieralisi Committed by Abhimanyu Kapur
Browse files

arm64: kernel: add PM build infrastructure



This patch adds the required makefile and kconfig entries to enable PM
for arm64 systems.

The kernel relies on the cpu_{suspend}/{resume} infrastructure to
properly save the context for a CPU and put it to sleep, hence this
patch adds the config option required to enable cpu_{suspend}/{resume}
API.

In order to rely on the CPU PM implementation for saving and restoring
of CPU subsystems like GIC and PMU, the arch Kconfig must be also
augmented to select the CONFIG_CPU_PM option when SUSPEND or CPU_IDLE
kernel implementations are selected.

Change-Id: Idfe12b087b22b11f6eb87379615394081ebab7f0
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Git-commit: 166936bace056dfc11452d794209f39a5e9b0fb4
Git-Repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git


Signed-off-by: default avatarAbhimanyu Kapur <abhimany@codeaurora.org>
parent e9341697
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ config ARM64
	select ARM_GIC
	select CLONE_BACKWARDS
	select COMMON_CLK if !ARCH_MSM
	select CPU_PM if (SUSPEND || CPU_IDLE)
	select GENERIC_CLOCKEVENTS
	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
	select GENERIC_IOMAP
@@ -265,6 +266,18 @@ config SYSVIPC_COMPAT

endmenu

menu "Power management options"

source "kernel/power/Kconfig"

config ARCH_SUSPEND_POSSIBLE
	def_bool y

config ARM64_CPU_SUSPEND
	def_bool PM_SLEEP

endmenu

source "net/Kconfig"

source "drivers/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ arm64-obj-$(CONFIG_SMP) += smp.o smp_spin_table.o
arm64-obj-$(CONFIG_HW_PERF_EVENTS)	+= perf_event.o
arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT)+= hw_breakpoint.o
arm64-obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
arm64-obj-$(CONFIG_ARM64_CPU_SUSPEND)	+= sleep.o suspend.o

obj-y					+= $(arm64-obj-y) vdso/
obj-m					+= $(arm64-obj-m)