summaryrefslogtreecommitdiff
path: root/power-libperfmgr/hidl
diff options
context:
space:
mode:
authorMidas Chien <midaschieh@google.com>2020-06-20 17:52:03 +0800
committerMidas Chien <midaschieh@google.com>2020-06-30 06:15:54 +0000
commit6bd8a847b8e59aafdf09feda6f52afe55ee8dde2 (patch)
treea97e06e75c1776ef40b79dfe08bc34b83472529e /power-libperfmgr/hidl
parent90ef3eb2c1e44353ab97161cba7660644bc56a1c (diff)
downloadpixel-6bd8a847b8e59aafdf09feda6f52afe55ee8dde2.tar.gz
display: cache display lpm state to avoid set it againandroid11-dev
If current foss state same as desired state, doesn't set it again. Bug: 148656663 Test: stress on/off battery saver and check foss state Test: enable battery saver, stress on/off screen Change-Id: I6298361fd6a5d6a86c94eabb71ab254507136fd3
Diffstat (limited to 'power-libperfmgr/hidl')
-rw-r--r--power-libperfmgr/hidl/Power.cpp13
-rw-r--r--power-libperfmgr/hidl/Power.h2
2 files changed, 7 insertions, 8 deletions
diff --git a/power-libperfmgr/hidl/Power.cpp b/power-libperfmgr/hidl/Power.cpp
index 1092670d..2b43b0f3 100644
--- a/power-libperfmgr/hidl/Power.cpp
+++ b/power-libperfmgr/hidl/Power.cpp
@@ -31,7 +31,7 @@
#include <utils/Trace.h>
#include "AudioStreaming.h"
-#include "disp-power/display-helper.h"
+#include "disp-power/DisplayLowPower.h"
namespace android {
namespace hardware {
@@ -62,6 +62,7 @@ static const std::map<enum CameraStreamingMode, std::string> kCamStreamingHint =
Power::Power()
: mHintManager(nullptr),
mInteractionHandler(nullptr),
+ mDisplayLowPower(nullptr),
mVRModeOn(false),
mSustainedPerfModeOn(false),
mCameraStreamingMode(CAMERA_STREAMING_OFF),
@@ -74,6 +75,8 @@ Power::Power()
}
mInteractionHandler = std::make_unique<InteractionHandler>(mHintManager);
mInteractionHandler->Init();
+ mDisplayLowPower = std::make_unique<DisplayLowPower>();
+ mDisplayLowPower->Init();
std::string state = android::base::GetProperty(kPowerHalStateProp, "");
if (state == "CAMERA_STREAMING") {
ALOGI("Initialize with CAMERA_STREAMING on");
@@ -199,13 +202,7 @@ Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) {
}
break;
case PowerHint_1_0::LOW_POWER:
- if (data) {
- // Device in battery saver mode, enable display low power mode
- set_display_lpm(true);
- } else {
- // Device exiting battery saver mode, disable display low power mode
- set_display_lpm(false);
- }
+ mDisplayLowPower->SetDisplayLowPower(static_cast<bool>(data));
break;
default:
break;
diff --git a/power-libperfmgr/hidl/Power.h b/power-libperfmgr/hidl/Power.h
index a79f94f5..9bac4077 100644
--- a/power-libperfmgr/hidl/Power.h
+++ b/power-libperfmgr/hidl/Power.h
@@ -27,6 +27,7 @@
#include <perfmgr/HintManager.h>
#include "CameraMode.h"
+#include "disp-power/DisplayLowPower.h"
#include "disp-power/InteractionHandler.h"
namespace android {
@@ -72,6 +73,7 @@ class Power : public IPower {
private:
std::shared_ptr<HintManager> mHintManager;
std::unique_ptr<InteractionHandler> mInteractionHandler;
+ std::unique_ptr<DisplayLowPower> mDisplayLowPower;
std::atomic<bool> mVRModeOn;
std::atomic<bool> mSustainedPerfModeOn;
std::atomic<enum CameraStreamingMode> mCameraStreamingMode;