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

Commit a9703163 authored by Connor O'Brien's avatar Connor O'Brien
Browse files

PowerManagerService: open power HAL less aggressively



Once the power HAL has failed to open once, don't try to open it again
on subsequent calls to the service.

Test: remove power HAL on marlin & confirm log spam stops.
Bug: 38028137
Change-Id: If7bc4f7080e8822b68da0d1bd81df8de1ce388aa
Signed-off-by: default avatarConnor O'Brien <connoro@google.com>
parent 1c38d294
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ static struct {

static jobject gPowerManagerServiceObj;
sp<IPower> gPowerHal = nullptr;
bool gPowerHalExists = true;
std::mutex gPowerHalMutex;
static nsecs_t gLastEventTime[USER_ACTIVITY_EVENT_LAST + 1];

@@ -78,12 +79,13 @@ static bool checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodNa
// Check validity of current handle to the power HAL service, and call getService() if necessary.
// The caller must be holding gPowerHalMutex.
bool getPowerHal() {
    if (gPowerHal == nullptr) {
    if (gPowerHalExists && gPowerHal == nullptr) {
        gPowerHal = IPower::getService();
        if (gPowerHal != nullptr) {
            ALOGI("Loaded power HAL service");
        } else {
            ALOGI("Couldn't load power HAL service");
            gPowerHalExists = false;
        }
    }
    return gPowerHal != nullptr;