• Lorenzo Pieralisi's avatar
    ARM: psci: cpuidle: Introduce PSCI CPUidle driver · 81d549e0
    Lorenzo Pieralisi authored
    PSCI firmware is the standard power management control for
    all ARM64 based platforms and it is also deployed on some
    ARM 32 bit platforms to date.
    
    Idle state entry in PSCI is currently achieved by calling
    arm_cpuidle_init() and arm_cpuidle_suspend() in a generic
    idle driver, which in turn relies on ARM/ARM64 CPUidle back-end
    to relay the call into PSCI firmware if PSCI is the boot method.
    
    Given that PSCI is the standard idle entry method on ARM64 systems
    (which means that no other CPUidle driver are expected on ARM64
    platforms - so PSCI is already a generic idle driver), in order to
    simplify idle entry and code maintenance, it makes sense to have a PSCI
    specific idle driver so that idle code that it is currently living in
    drivers/firmware directory can be hoisted out of it and moved
    where it belongs, into a full-fledged PSCI driver, leaving PSCI code
    in drivers/firmware as a pure firmware interface, as it should be.
    
    Implement a PSCI CPUidle driver. By default it is a silent Kconfig entry
    which is left unselected, since it selection would clash with the
    generic ARM CPUidle driver that provides a PSCI based idle driver
    through the arm/arm64 arches back-ends CPU operations.
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    Cc: Ulf Hansson <ulf.hansson@linaro.org>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    81d549e0
Makefile 1.31 KB