sm6375-common: power-libperfmgr: Allow certain hints to be processed always

These don't affect performance, so we don't need to disable them
for battery saver or sustained performance mode.

Change-Id: I483d7fa6d0067f21d46b6811ba324793415218c7
This commit is contained in:
Adithya R 2024-07-18 12:56:42 +05:30 committed by Anand S
parent 297b581ede
commit f09f784d55
No known key found for this signature in database
GPG key ID: 3B2983FA448B3D61

View file

@ -47,6 +47,13 @@ constexpr char kPowerHalStateProp[] = "vendor.powerhal.state";
constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio"; constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio";
constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering"; constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering";
static const std::vector<Mode> kAlwaysAllowedModes = {
Mode::DOUBLE_TAP_TO_WAKE,
Mode::INTERACTIVE,
Mode::DEVICE_IDLE,
Mode::DISPLAY_INACTIVE,
};
Power::Power() Power::Power()
: mInteractionHandler(nullptr), : mInteractionHandler(nullptr),
mSustainedPerfModeOn(false), mSustainedPerfModeOn(false),
@ -79,6 +86,10 @@ Power::Power()
static void endAllHints() { static void endAllHints() {
std::shared_ptr<HintManager> hm = HintManager::GetInstance(); std::shared_ptr<HintManager> hm = HintManager::GetInstance();
for (auto hint : hm->GetHints()) { for (auto hint : hm->GetHints()) {
if (std::any_of(kAlwaysAllowedModes.begin(), kAlwaysAllowedModes.end(),
[hint](auto mode) { return hint == toString(mode); })) {
continue;
}
hm->EndHint(hint); hm->EndHint(hint);
} }
} }
@ -132,7 +143,8 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) {
case Mode::AUDIO_STREAMING_LOW_LATENCY: case Mode::AUDIO_STREAMING_LOW_LATENCY:
[[fallthrough]]; [[fallthrough]];
default: default:
if (mBatterySaverOn || mSustainedPerfModeOn) { if ((mBatterySaverOn || mSustainedPerfModeOn) && std::find(kAlwaysAllowedModes.begin(),
kAlwaysAllowedModes.end(), type) == kAlwaysAllowedModes.end()) {
break; break;
} }
if (enabled) { if (enabled) {