From 6c18e6da2aa9758eb7c9a639f44a15a45723f65b Mon Sep 17 00:00:00 2001 From: Matt Buckley Date: Wed, 7 Feb 2024 23:39:50 +0000 Subject: 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 --- services/powermanager/PowerHalLoader.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'services/powermanager/PowerHalLoader.cpp') 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 PowerHalLoader::gHalHidlV1_0 = nullptr; sp PowerHalLoader::gHalHidlV1_1 = nullptr; sp PowerHalLoader::gHalHidlV1_2 = nullptr; sp PowerHalLoader::gHalHidlV1_3 = nullptr; +int32_t PowerHalLoader::gAidlInterfaceVersion = 0; void PowerHalLoader::unloadAll() { std::lock_guard lock(gHalMutex); @@ -89,6 +90,8 @@ std::shared_ptr 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 PowerHalLoader::loadHidlV1_0Locked() { return loadHal(gHalExists, gHalHidlV1_0, loadFn, "HIDL v1.0"); } +int32_t PowerHalLoader::getAidlVersion() { + return gAidlInterfaceVersion; +} + // ------------------------------------------------------------------------------------------------- } // namespace power -- cgit v1.2.3-59-g8ed1b