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

Commit c7742f7c authored by Karthik Parsha's avatar Karthik Parsha Committed by Murali Nalajala
Browse files

msm: lpm: Ignore cluster level with notify rpm if rpm acks are pending



When selecting a cluster level, if a level can result in sleep set
transition and there are pending rpm acks, then ignore that level in the
search for the best cluster level.

CRs-fixed: 705303
Signed-off-by: default avatarKarthik Parsha <kparsha@codeaurora.org>
Change-Id: I915297b0b74c013bdeb69026e69204e7c6dc39b1
parent a206d164
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -377,14 +377,6 @@ static int cluster_select(struct lpm_cluster *cluster, bool from_idle)
	if (!cluster)
		return -EINVAL;

	/*
	 * TODO:
	 * use per_cpu pm_qos to prevent low power modes based on
	 * latency
	 */
	if (msm_rpm_waiting_for_ack())
		return best_level;

	sleep_us = (uint32_t)get_cluster_sleep_time(cluster, NULL, from_idle);

	if (cpumask_and(&mask, cpu_online_mask, &cluster->child_cpus))
@@ -426,6 +418,9 @@ static int cluster_select(struct lpm_cluster *cluster, bool from_idle)
		if (suspend_in_progress && from_idle && level->notify_rpm)
			continue;

		if (level->notify_rpm && msm_rpm_waiting_for_ack())
			continue;

		if ((sleep_us >> 10) > pwr_params->time_overhead_us) {
			pwr = pwr_params->ss_power;
		} else {