Tegra194 and Tegra186 platforms use separate MCE firmware for CPUs which is in charge of deciding on state transition based on target state, state idle time, and some other Tegra CPU core cluster states information. Current PSCI specification don't have function defined for passing runtime state idle time predicted by governor (based on next events and state target residency) to ARM trusted firmware. With the support of adding new PSCI function to allow passing runtime state idle time from kernel to ARM trusted firmware, Tegra194 platforms can use generic psci cpuidle driver rather than having Tegra specific cpuidle driver. During Tegra specific cpuidle driver V1 review, Sudeep Holla from ARM also suggested to use generic cpuidle driver by generalizing the need of runtime state idle time. So had internal discussion between ARM and NVIDIA on adding new PSCI function to allow passing runtime state idle time from kernel to TF-A through PSCI and once this implementation is accepted by upstream, ARM will look into further to update PSCI specification for this new PSCI function. So sending these patches as RFC as new PSCI function added in this series is not part of PSCI specification and once this implementation is accepted by ARM and upstream community, ARM can help to take this forward to add to PSCI specification. To keep the backward compatibility we can't update CPU_SUSPEND function to pass state idle time argument. So added seperate function for passing state idle time and serializing this with cpu suspend state enter. Once this approach is agreed, we can either use this way of separate PSCI function for passing state idle time or with PSCI specification update we can use same CPU_SUSPEND function with extra argument for state idle time which can be decided later for final patches based on discussion with ARM. Sowjanya Komatineni (4): firmware/psci: add support for PSCI function SET_STATE_IDLE_TIME cpuidle: menu: add idle_time to cpuidle_state cpuidle: psci: pass state idle time before state enter callback arm64: dts: tegra194: Add CPU idle states arch/arm64/boot/dts/nvidia/tegra194.dtsi | 19 +++++++++++++++++++ drivers/cpuidle/cpuidle-psci.c | 11 +++++++++++ drivers/cpuidle/governors/menu.c | 7 ++++++- drivers/firmware/psci/psci.c | 9 +++++++++ include/linux/cpuidle.h | 1 + include/linux/psci.h | 1 + include/uapi/linux/psci.h | 2 ++ 7 files changed, 49 insertions(+), 1 deletion(-) -- 2.7.4