[RFC PATCH 0/3] ARM: TC2 big.LITTLE CPU idle driver
lorenzo.pieralisi at arm.com
Thu Jul 25 07:14:23 EDT 2013
This patch series provides the implementation of CPU idle driver for the TC2
ARM big.LITTLE SoC. It is based and dependent on Nico's branch
and relative pull request
First two patches in the series simply implement a method to disable the
GIC CPU IF and add the respective call in the MCPM TC2 back-end. Details
are explained in the commit logs.
Patch 3 implements the TC2 CPU idle driver, that paves the way for a
generic ARM idle driver, MCPM based (but PSCI can be easily integrated
as well) for all upcoming big.LITTLE systems.
The CPU idle driver is built upon the multiple drivers CPU idle infrastructure
to define different target residencies for different clusters.
Current driver matches the DT compatible string defining a TC2 testchip core
tile, but in the future will be augmented with a proper match table to
match against all machines that can rely on this driver to implement CPU
This CPU idle driver integrates all existing PM kernel concepts recently
implemented for ARM, MCPM, CPU PM notifiers and cpu_suspend and lays the
foundation for a reference implementation of a generic CPU idle driver, since
the driver as it stands is completely generic, C-states definition
C-state definition for the driver should be made dynamic so that the driver
can become completely generic and decoupled from static C-states definition.
The driver has been tested, obviously on the TC2 testchip, with different
Linux systems ranging from simple busybox to Android and Ubuntu rootfs,
through millions of C-state iterations randomly triggered by the
aforementioned root filesystem environments.
Comments and review very welcome.
Lorenzo Pieralisi (2):
ARM: vexpress: tc2: disable GIC CPU IF in tc2_pm_suspend
cpuidle: big.LITTLE: vexpress-TC2 CPU idle driver
Nicolas Pitre (1):
drivers: irq-chip: irq-gic: introduce gic_cpu_if_down()
MAINTAINERS | 9 ++
arch/arm/mach-vexpress/tc2_pm.c | 2 +
drivers/cpuidle/Kconfig | 10 ++
drivers/cpuidle/Makefile | 1 +
drivers/cpuidle/cpuidle-big_little.c | 187 +++++++++++++++++++++++++++++++++++
drivers/irqchip/irq-gic.c | 6 ++
include/linux/irqchip/arm-gic.h | 1 +
7 files changed, 216 insertions(+)
create mode 100644 drivers/cpuidle/cpuidle-big_little.c
More information about the linux-arm-kernel