Commit Graph

8 Commits

Author SHA1 Message Date
Murali Nalajala 16323e6eef cpu_pm: Add level to the cluster pm notification
Cluster pm notifications without level information increases difficulty
and complexity for the registered drivers to figure out when the last
coherency level is going into power collapse.

Send notifications with level information that allows the registered
drivers to easily determine the cluster level that is going in/out of
power collapse.

There is an issue with this implementation. GIC driver saves and
restores the distributed registers as part of cluster notifications. On
newer platforms there are multiple cluster levels are defined (e.g l2,
cci etc). These cluster level notofications can happen independently.
On MSM platforms GIC is still active while the cluster sleeps in idle,
causing the GIC state to be overwritten with an incorrect previous state
of the interrupts. This leads to a system hang. Do not save and restore
on any L2 and higher cache coherency level sleep entry and exit.

Change-Id: I31918d6383f19e80fe3b064cfaf0b55e16b97eb6
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
2015-01-07 22:31:58 -08:00
Mahesh Sivasubramanian 50711f8b45 ARM64: smp: Prevent cluster LPM modes when pending IPIs on cluster CPUs
LPM modes can fail if there is a pending IPI interrupt at GIC CPU
interface. On some usecases frequent failure of LPM modes can
cause power and performance degradation. Hence, prevent cluster
low power modes when there is a pending IPI on cluster CPUs.

Change-Id: Id8a0ac24e4867ef824e0a6f11d989f1e1a2b0e93
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
2014-10-24 17:10:40 -07:00
Venkat Devarasetty b3cee487aa Revert "msm: add default enable mode option for lpm levels"
This reverts commit b774cded4a.
Change is no more needed as 8939 boots with all low power modes
enabled by default.

Change-Id: Ia70c0f1974c01086ea18bba8015925528bdd4c48
Signed-off-by: Venkat Devarasetty <vdevaras@codeaurora.org>
2014-06-09 15:28:09 +05:30
Venkat Devarasetty b774cded4a msm: add default enable mode option for lpm levels
With cluster architecture changes all lpm modes are
enabled at boot. There are crashes at boot when all
lpms are enabled at boot. Add an option to enable
only selected modes at boot up.

Change-Id: Iebeab667aad8d12926b7a3a92deb8ca47c68bfb3
Signed-off-by: Venkat Devarasetty <vdevaras@codeaurora.org>
2014-06-06 13:03:13 +05:30
Praveen Chidambaram dfbc6bef45 msm: lpm_levels: Allow enable/disable LPM for cpus and clusters
Add sysfs interface to allow/disallow low power modes. Every level
specified in the Devicetree for each cpu and cluster will have an
idle_enabled and suspend_enabled option that controls the availability of
the low power mode for CPUIdle and HOTPLUG/Suspend frameworks.

Change-Id: Ic27f3a586eb9992c611411d2a13365b909ae48a3
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
2014-05-22 09:28:51 -06:00
Mahesh Sivasubramanian 4f939aeb57 msm: lpm-levels: Add support for reporting statistics.
The pm-stats drivers is rearchitected to support multiple clusters and
report the statistics of individual resources. Add support to invoke the
new APIs to appropriately report the pm-stats for clusters and cpus

Change-Id: Ibcae9e79a2df39a74247968fce89c72a996d9ad3
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
2014-05-20 18:55:00 -06:00
Praveen Chidambaram 1ade5c364e msm: lpm: Support cluster low power modes for cpu hotplug
When all cpus in any cluster are powered down, we would want to do cluster
low power modes and save power draw by devices like L2, associated with the
cluster. Also, bubble up and allow low power modes on top level clusters.

Change-Id: I68bc2ccbb3cff884da9356ef9aad88d5c2207c10
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
2014-05-20 18:55:00 -06:00
Mahesh Sivasubramanian 0bae66c38a msm: lpm-levels: Support for cluster power management
Add power management support for multilevel cluster. The code is redesigned
to support low power modes with multiple hierarchies of clusters.

Change-Id: I0d0142e53bf2fe6152e7791f09bcb4d35a82e461
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
2014-05-20 18:54:35 -06:00