diff options
author | Midas Chien <midaschieh@google.com> | 2020-06-20 17:52:03 +0800 |
---|---|---|
committer | Midas Chien <midaschieh@google.com> | 2020-06-30 06:15:54 +0000 |
commit | 6bd8a847b8e59aafdf09feda6f52afe55ee8dde2 (patch) | |
tree | a97e06e75c1776ef40b79dfe08bc34b83472529e /power-libperfmgr/hidl | |
parent | 90ef3eb2c1e44353ab97161cba7660644bc56a1c (diff) | |
download | pixel-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.cpp | 13 | ||||
-rw-r--r-- | power-libperfmgr/hidl/Power.h | 2 |
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; |