73 lines
3.0 KiB
Diff
73 lines
3.0 KiB
Diff
From 792b863af87a7bd3d063da76ecefa7e229e1aded Mon Sep 17 00:00:00 2001
|
|
From: Pierre-Hugues Husson <phh@phh.me>
|
|
Date: Fri, 18 Dec 2020 16:38:58 -0500
|
|
Subject: [PATCH] Fix Samsung Power HAL (switch/case was filled with
|
|
mines/returns), and cleanup code and add logs
|
|
|
|
---
|
|
...droid_server_power_PowerManagerService.cpp | 25 +++++++++++--------
|
|
1 file changed, 14 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
|
index 47fdcc9a87b..ed7d311ab9f 100644
|
|
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
|
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
|
|
@@ -83,7 +83,6 @@ static sp<IPowerV1_1> gPowerHalHidlV1_1_ = nullptr;
|
|
static sp<IPowerAidl> gPowerHalAidl_ = nullptr;
|
|
static sp<ILineagePowerV1_0> gLineagePowerHalV1_0_ = nullptr;
|
|
static sp<ISehMiscPower> gSehMiscPower = nullptr;
|
|
-static bool gPowerHalExists = true;
|
|
static std::mutex gPowerHalMutex;
|
|
|
|
enum class HalVersion {
|
|
@@ -129,9 +128,11 @@ static HalVersion connectPowerHalLocked() {
|
|
gPowerHalAidlExists = false;
|
|
}
|
|
}
|
|
- if (gPowerHalExists && gPowerHalHidlV1_0_ == nullptr) {
|
|
+ if (gPowerHalHidlExists && gPowerHalHidlV1_0_ == nullptr) {
|
|
+ ALOGE("Trying to connect to Samsung Power HAL");
|
|
gSehMiscPower = ISehMiscPower::getService();
|
|
gPowerHalHidlV1_0_ = IPowerV1_0::getService("miscpower");
|
|
+ ALOGE("Got miscpower = %d, SehMiscPower = %d", gPowerHalHidlV1_0_ != nullptr ? 1 : 0, gSehMiscPower ? 1 : 0);
|
|
}
|
|
if (gPowerHalHidlExists && gPowerHalHidlV1_0_ == nullptr) {
|
|
gPowerHalHidlV1_0_ = IPowerV1_0::getService();
|
|
@@ -484,7 +485,17 @@ static void nativeReleaseSuspendBlocker(JNIEnv *env, jclass /* clazz */, jstring
|
|
|
|
static void nativeSetInteractive(JNIEnv* /* env */, jclass /* clazz */, jboolean enable) {
|
|
std::unique_lock<std::mutex> lock(gPowerHalMutex);
|
|
- switch (connectPowerHalLocked()) {
|
|
+
|
|
+ auto powerHalType = connectPowerHalLocked();
|
|
+ if(gSehMiscPower != nullptr) {
|
|
+ android::base::Timer t;
|
|
+ Return<void> ret = gSehMiscPower->setInteractiveAsync(enable, 0);
|
|
+ if(!ret.isOk()) {
|
|
+ ALOGE("set interactive async() failed: seh misc setInteractiveAsync");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ switch (powerHalType) {
|
|
case HalVersion::NONE:
|
|
return;
|
|
case HalVersion::HIDL_1_0:
|
|
@@ -512,14 +523,6 @@ static void nativeSetInteractive(JNIEnv* /* env */, jclass /* clazz */, jboolean
|
|
return;
|
|
}
|
|
}
|
|
- sp<ISehMiscPower> sehMiscPower = getSehMiscPower();
|
|
- if(sehMiscPower != nullptr) {
|
|
- android::base::Timer t;
|
|
- Return<void> ret = sehMiscPower->setInteractiveAsync(enable, 0);
|
|
- if(!ret.isOk()) {
|
|
- ALOGE("set interactive async() failed: seh misc setInteractiveAsync");
|
|
- }
|
|
- }
|
|
}
|
|
|
|
static void nativeSetAutoSuspend(JNIEnv* /* env */, jclass /* clazz */, jboolean enable) {
|
|
--
|
|
2.25.1
|
|
|