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

Commit 9e3b6496 authored by Skylar Chang's avatar Skylar Chang
Browse files

msm: ipa: avoid wakelock acquire/release during data



Hold IPA wakelock as long as IPA driver voted for IPA clocks
as part of suspend interrupt to avoid frequent acquire/release
of this resource.

Change-Id: I2fb4cbb201692023c328a7598a7f4e4ade541b3e
CRs-Fixed: 2133719
Acked-by: default avatarAdy Abraham <adya@qti.qualcomm.com>
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent a8118139
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3727,6 +3727,11 @@ void ipa_suspend_handler(enum ipa_irq_type interrupt,
					atomic_set(
						&ipa_ctx->sps_pm.dec_clients,
						1);
					/*
					 * acquire wake lock as long as suspend
					 * vote is held
					 */
					ipa_inc_acquire_wakelock();
					ipa_sps_process_irq_schedule_rel();
				}
				mutex_unlock(&ipa_ctx->sps_pm.sps_pm_lock);
@@ -3799,6 +3804,7 @@ static void ipa_sps_release_resource(struct work_struct *work)
			ipa_sps_process_irq_schedule_rel();
		} else {
			atomic_set(&ipa_ctx->sps_pm.dec_clients, 0);
			ipa_dec_release_wakelock();
			IPA_ACTIVE_CLIENTS_DEC_SPECIAL("SPS_RESOURCE");
		}
	}
+6 −0
Original line number Diff line number Diff line
@@ -4030,6 +4030,11 @@ void ipa3_suspend_handler(enum ipa_irq_type interrupt,
					atomic_set(
					&ipa3_ctx->transport_pm.dec_clients,
					1);
					/*
					 * acquire wake lock as long as suspend
					 * vote is held
					 */
					ipa3_inc_acquire_wakelock();
					ipa3_process_irq_schedule_rel();
				}
				mutex_unlock(&ipa3_ctx->transport_pm.
@@ -4110,6 +4115,7 @@ static void ipa3_transport_release_resource(struct work_struct *work)
			ipa3_process_irq_schedule_rel();
		} else {
			atomic_set(&ipa3_ctx->transport_pm.dec_clients, 0);
			ipa3_dec_release_wakelock();
			IPA_ACTIVE_CLIENTS_DEC_SPECIAL("TRANSPORT_RESOURCE");
		}
	}