summaryrefslogtreecommitdiff
path: root/services/powermanager/PowerHalLoader.cpp
diff options
context:
space:
mode:
author Matt Buckley <mattbuckley@google.com> 2024-02-07 23:39:50 +0000
committer Matt Buckley <mattbuckley@google.com> 2024-03-04 22:08:15 +0000
commit6c18e6da2aa9758eb7c9a639f44a15a45723f65b (patch)
treefe12dce50bca48dd2f28bb616ffc3fad03253406 /services/powermanager/PowerHalLoader.cpp
parent415c59e4430e8aa34295cf09d6c0eb7ee5658705 (diff)
Update PowerHAL wrapper support checking behavior
- Updates support checks to check status for UNKNOWN_TRANSACTION - Adds PowerHintSessionWrapper class to check support on session methods - Ensures that wrapper methods check the HAL version number for support - Adds macros to cache returned wrapper call support status Bug: 324255931 Test: atest libpowermanager_test Test: atest libsurfaceflinger_unittest:PowerAdvisorTest Change-Id: I4b329e6b55c53198bb064a34e792be6336e66e27
Diffstat (limited to 'services/powermanager/PowerHalLoader.cpp')
-rw-r--r--services/powermanager/PowerHalLoader.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/powermanager/PowerHalLoader.cpp b/services/powermanager/PowerHalLoader.cpp
index 22144615da..ea284c36d8 100644
--- a/services/powermanager/PowerHalLoader.cpp
+++ b/services/powermanager/PowerHalLoader.cpp
@@ -60,6 +60,7 @@ sp<V1_0::IPower> PowerHalLoader::gHalHidlV1_0 = nullptr;
sp<V1_1::IPower> PowerHalLoader::gHalHidlV1_1 = nullptr;
sp<V1_2::IPower> PowerHalLoader::gHalHidlV1_2 = nullptr;
sp<V1_3::IPower> PowerHalLoader::gHalHidlV1_3 = nullptr;
+int32_t PowerHalLoader::gAidlInterfaceVersion = 0;
void PowerHalLoader::unloadAll() {
std::lock_guard<std::mutex> lock(gHalMutex);
@@ -89,6 +90,8 @@ std::shared_ptr<aidl::android::hardware::power::IPower> PowerHalLoader::loadAidl
ndk::SpAIBinder(AServiceManager_waitForService(aidlServiceName.c_str())));
if (gHalAidl) {
ALOGI("Successfully connected to Power HAL AIDL service.");
+ gHalAidl->getInterfaceVersion(&gAidlInterfaceVersion);
+
} else {
ALOGI("Power HAL AIDL service not available.");
gHalExists = false;
@@ -128,6 +131,10 @@ sp<V1_0::IPower> PowerHalLoader::loadHidlV1_0Locked() {
return loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFn, "HIDL v1.0");
}
+int32_t PowerHalLoader::getAidlVersion() {
+ return gAidlInterfaceVersion;
+}
+
// -------------------------------------------------------------------------------------------------
} // namespace power