From 431daebc40fda098a9c4e24177bf7f104c8a3370 Mon Sep 17 00:00:00 2001 From: Adithya R Date: Thu, 18 Jul 2024 20:16:00 +0530 Subject: [PATCH] sm6375-common: power-libperfmgr: Properly handle sustained performance mode * when tested with [1], even after exiting the app, spm was still active in powerhal thereby keeping max freqs limited and blocking boosts * enable/disable it properly and end all other hints before enabling, to fix this issue * while we're at it, don't handle max freq for anything other than spm in powerhint [1] https://android.googlesource.com/platform/cts/+/refs/heads/master/hostsidetests/sustainedperf Change-Id: I6e37dfa7ffab0137d70cb5ba5d1b156133416062 Signed-off-by: Adithya R --- power-libperfmgr/Power.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/power-libperfmgr/Power.cpp b/power-libperfmgr/Power.cpp index 7eabdf8..53cf3bd 100644 --- a/power-libperfmgr/Power.cpp +++ b/power-libperfmgr/Power.cpp @@ -97,9 +97,12 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { #endif case Mode::SUSTAINED_PERFORMANCE: if (enabled) { + endAllHints(); HintManager::GetInstance()->DoHint("SUSTAINED_PERFORMANCE"); + } else { + HintManager::GetInstance()->EndHint("SUSTAINED_PERFORMANCE"); } - mSustainedPerfModeOn = true; + mSustainedPerfModeOn = enabled; break; case Mode::LOW_POWER: if (enabled) { @@ -111,9 +114,6 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { mBatterySaverOn = enabled; break; case Mode::LAUNCH: - if (mSustainedPerfModeOn) { - break; - } [[fallthrough]]; #ifndef TAP_TO_WAKE_NODE case Mode::DOUBLE_TAP_TO_WAKE: @@ -132,7 +132,9 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { case Mode::AUDIO_STREAMING_LOW_LATENCY: [[fallthrough]]; default: - if (mBatterySaverOn) break; + if (mBatterySaverOn || mSustainedPerfModeOn) { + break; + } if (enabled) { HintManager::GetInstance()->DoHint(toString(type)); } else {