From 03a61ae886e05cda81fe0da76354aab4258ecbe6 Mon Sep 17 00:00:00 2001 From: Michael Benedict Date: Sun, 21 Mar 2021 01:50:06 +0700 Subject: [PATCH] Revert "aidl: power-libperfmgr: Re-implement lineage perf hint" * The patch was merged pre-maturely before r-perf-profiles topic got merged. Lets wait properly this time and be patient. This reverts commit c50258fca0d28826c91e661653017f67aa3e05b3. Change-Id: I60129f3886b9ab570a3d19b1e4cef9084ab87533 --- aidl/power-libperfmgr/Android.bp | 4 +- aidl/power-libperfmgr/LineagePower.cpp | 56 ---------------- aidl/power-libperfmgr/LineagePower.h | 46 ------------- aidl/power-libperfmgr/Power.cpp | 65 +------------------ aidl/power-libperfmgr/Power.h | 11 ---- ...android.hardware.power-service.samsung.xml | 4 -- aidl/power-libperfmgr/service.cpp | 14 +--- 7 files changed, 3 insertions(+), 197 deletions(-) delete mode 100644 aidl/power-libperfmgr/LineagePower.cpp delete mode 100644 aidl/power-libperfmgr/LineagePower.h diff --git a/aidl/power-libperfmgr/Android.bp b/aidl/power-libperfmgr/Android.bp index 6b894b2a..0c317dec 100644 --- a/aidl/power-libperfmgr/Android.bp +++ b/aidl/power-libperfmgr/Android.bp @@ -35,13 +35,11 @@ cc_binary { "libbinder_ndk", "libperfmgr", "pixel-power-ext-ndk_platform", - "vendor.lineage.power-ndk_platform", ], srcs: [ "service.cpp", "Power.cpp", "PowerExt.cpp", - "InteractionHandler.cpp", - "LineagePower.cpp" + "InteractionHandler.cpp" ], } diff --git a/aidl/power-libperfmgr/LineagePower.cpp b/aidl/power-libperfmgr/LineagePower.cpp deleted file mode 100644 index 023ee09e..00000000 --- a/aidl/power-libperfmgr/LineagePower.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2021 The LineageOS Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "LineagePower.h" - -namespace aidl { -namespace vendor { -namespace lineage { -namespace power { -namespace impl { - -LineagePower::LineagePower(std::shared_ptr power, int32_t serviceNumPerfProfiles) - : mPower(power), mNumPerfProfiles(serviceNumPerfProfiles) {} - - -ndk::ScopedAStatus LineagePower::getFeature(Feature feature, int* _aidl_return) { - switch (feature) { - case Feature::SUPPORTED_PROFILES: - *_aidl_return = mNumPerfProfiles; - break; - default: - *_aidl_return = -1; - break; - } - return ndk::ScopedAStatus::ok(); -} - -ndk::ScopedAStatus LineagePower::setBoost(Boost type, int durationMs) { - switch (type) { - case Boost::SET_PROFILE: - mPower->setProfile(static_cast(durationMs)); - break; - default: - break; - } - return ndk::ScopedAStatus::ok(); -} - -} // namespace impl -} // namespace power -} // namespace lineage -} // namespace vendor -} // namespace aidl diff --git a/aidl/power-libperfmgr/LineagePower.h b/aidl/power-libperfmgr/LineagePower.h deleted file mode 100644 index a665686b..00000000 --- a/aidl/power-libperfmgr/LineagePower.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2021 The LineageOS Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include "Power.h" - -namespace aidl { -namespace vendor { -namespace lineage { -namespace power { -namespace impl { - -using aidl::google::hardware::power::impl::pixel::Power; -using aidl::google::hardware::power::impl::pixel::PowerProfile; - -class LineagePower : public BnPower { - public: - LineagePower(std::shared_ptr power, int32_t serviceNumPerfProfiles); - ndk::ScopedAStatus getFeature(Feature feature, int* _aidl_return) override; - ndk::ScopedAStatus setBoost(Boost type, int durationMs) override; - - private: - std::shared_ptr mPower; - int32_t mNumPerfProfiles; -}; - -} // namespace impl -} // namespace power -} // namespace lineage -} // namespace vendor -} // namespace aidl \ No newline at end of file diff --git a/aidl/power-libperfmgr/Power.cpp b/aidl/power-libperfmgr/Power.cpp index 7e51945a..b7a51d9f 100644 --- a/aidl/power-libperfmgr/Power.cpp +++ b/aidl/power-libperfmgr/Power.cpp @@ -40,14 +40,12 @@ namespace pixel { constexpr char kPowerHalStateProp[] = "vendor.powerhal.state"; constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio"; constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering"; -constexpr char kPowerHalProfileProp[] = "vendor.powerhal.perf_profile"; Power::Power(std::shared_ptr hm) : mHintManager(hm), mInteractionHandler(nullptr), mVRModeOn(false), - mSustainedPerfModeOn(false), - mCurrentPerfProfile(PowerProfile::BALANCED) { + mSustainedPerfModeOn(false) { mInteractionHandler = std::make_unique(mHintManager); mInteractionHandler->Init(); @@ -81,21 +79,6 @@ Power::Power(std::shared_ptr hm) mHintManager->DoHint("EXPENSIVE_RENDERING"); } - state = ::android::base::GetProperty(kPowerHalProfileProp, ""); - if (state == "POWER_SAVE") { - ALOGI("Initialize with POWER_SAVE profile"); - setProfile(PowerProfile::POWER_SAVE); - } else if (state == "BIAS_POWER_SAVE") { - ALOGI("Initialize with BIAS_POWER_SAVE profile"); - setProfile(PowerProfile::BIAS_POWER_SAVE); - } else if (state == "BIAS_PERFORMANCE") { - ALOGI("Initialize with BIAS_PERFORMANCE profile"); - setProfile(PowerProfile::BIAS_PERFORMANCE); - } else if (state == "HIGH_PERFORMANCE") { - ALOGI("Initialize with HIGH_PERFORMANCE profile"); - setProfile(PowerProfile::HIGH_PERFORMANCE); - } - // Now start to take powerhint ALOGI("PowerHAL ready to process hints"); } @@ -207,52 +190,6 @@ ndk::ScopedAStatus Power::isModeSupported(Mode type, bool *_aidl_return) { return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus Power::setProfile(PowerProfile profile) { - if (mCurrentPerfProfile == profile) { - return ndk::ScopedAStatus::ok(); - } - - // End previous perf profile hints - switch (mCurrentPerfProfile) { - case PowerProfile::POWER_SAVE: - mHintManager->EndHint("PROFILE_POWER_SAVE"); - break; - case PowerProfile::BIAS_POWER_SAVE: - mHintManager->EndHint("PROFILE_BIAS_POWER_SAVE"); - break; - case PowerProfile::BIAS_PERFORMANCE: - mHintManager->EndHint("PROFILE_BIAS_PERFORMANCE"); - break; - case PowerProfile::HIGH_PERFORMANCE: - mHintManager->EndHint("PROFILE_HIGH_PERFORMANCE"); - break; - default: - break; - } - - // Apply perf profile hints - switch (profile) { - case PowerProfile::POWER_SAVE: - mHintManager->DoHint("PROFILE_POWER_SAVE"); - break; - case PowerProfile::BIAS_POWER_SAVE: - mHintManager->DoHint("PROFILE_BIAS_POWER_SAVE"); - break; - case PowerProfile::BIAS_PERFORMANCE: - mHintManager->DoHint("PROFILE_BIAS_PERFORMANCE"); - break; - case PowerProfile::HIGH_PERFORMANCE: - mHintManager->DoHint("PROFILE_HIGH_PERFORMANCE"); - break; - default: - break; - } - - mCurrentPerfProfile = profile; - - return ndk::ScopedAStatus::ok(); -} - ndk::ScopedAStatus Power::setBoost(Boost type, int32_t durationMs) { LOG(DEBUG) << "Power setBoost: " << toString(type) << " duration: " << durationMs; ATRACE_INT(toString(type).c_str(), durationMs); diff --git a/aidl/power-libperfmgr/Power.h b/aidl/power-libperfmgr/Power.h index ab4e142d..04e16d65 100644 --- a/aidl/power-libperfmgr/Power.h +++ b/aidl/power-libperfmgr/Power.h @@ -37,21 +37,11 @@ using ::aidl::android::hardware::power::Boost; using ::aidl::android::hardware::power::Mode; using ::android::perfmgr::HintManager; -enum PowerProfile { - POWER_SAVE = 0, - BALANCED, - HIGH_PERFORMANCE, - BIAS_POWER_SAVE, - BIAS_PERFORMANCE, - MAX -}; - class Power : public ::aidl::android::hardware::power::BnPower { public: Power(std::shared_ptr hm); ndk::ScopedAStatus setMode(Mode type, bool enabled) override; ndk::ScopedAStatus isModeSupported(Mode type, bool *_aidl_return) override; - ndk::ScopedAStatus setProfile(PowerProfile profile); ndk::ScopedAStatus setBoost(Boost type, int32_t durationMs) override; ndk::ScopedAStatus isBoostSupported(Boost type, bool *_aidl_return) override; binder_status_t dump(int fd, const char **args, uint32_t numArgs) override; @@ -61,7 +51,6 @@ class Power : public ::aidl::android::hardware::power::BnPower { std::unique_ptr mInteractionHandler; std::atomic mVRModeOn; std::atomic mSustainedPerfModeOn; - std::atomic mCurrentPerfProfile; }; } // namespace pixel diff --git a/aidl/power-libperfmgr/android.hardware.power-service.samsung.xml b/aidl/power-libperfmgr/android.hardware.power-service.samsung.xml index 2fe873ab..1efa5f1d 100644 --- a/aidl/power-libperfmgr/android.hardware.power-service.samsung.xml +++ b/aidl/power-libperfmgr/android.hardware.power-service.samsung.xml @@ -3,8 +3,4 @@ android.hardware.power IPower/default - - vendor.lineage.power - IPower/default - diff --git a/aidl/power-libperfmgr/service.cpp b/aidl/power-libperfmgr/service.cpp index 5caa591f..4634ea11 100644 --- a/aidl/power-libperfmgr/service.cpp +++ b/aidl/power-libperfmgr/service.cpp @@ -23,16 +23,13 @@ #include #include -#include "LineagePower.h" #include "Power.h" #include "PowerExt.h" using aidl::google::hardware::power::impl::pixel::Power; using aidl::google::hardware::power::impl::pixel::PowerExt; using ::android::perfmgr::HintManager; -using aidl::vendor::lineage::power::impl::LineagePower; -constexpr char kPowerHalProfileNumProp[] = "vendor.powerhal.perf_profiles"; constexpr char kPowerHalConfigPath[] = "/vendor/etc/powerhint.json"; constexpr char kPowerHalInitProp[] = "vendor.powerhal.init"; @@ -45,9 +42,6 @@ int main() { LOG(FATAL) << "Invalid config: " << kPowerHalConfigPath; } - // parse number of profiles - int32_t serviceNumPerfProfiles = android::base::GetIntProperty(kPowerHalProfileNumProp, 0); - // single thread ABinderProcess_setThreadPoolMaxThreadCount(0); @@ -64,13 +58,7 @@ int main() { const std::string instance = std::string() + Power::descriptor + "/default"; binder_status_t status = AServiceManager_addService(pw->asBinder().get(), instance.c_str()); CHECK(status == STATUS_OK); - - // lineage service - std::shared_ptr lineagePw = ndk::SharedRefBase::make(pw, serviceNumPerfProfiles); - const std::string lineageInstance = std::string() + LineagePower::descriptor + "/default"; - binder_status_t lineageStatus = AServiceManager_addService(lineagePw->asBinder().get(), lineageInstance.c_str()); - CHECK(lineageStatus == STATUS_OK); - LOG(INFO) << "Pixel Power HAL AIDL Service with Extension & Lineage Perf Profile is started."; + LOG(INFO) << "Pixel Power HAL AIDL Service with Extension is started."; std::thread initThread([&]() { ::android::base::WaitForProperty(kPowerHalInitProp, "1");