Update CPU GPU headroom HAL API
* change pid to tids list
* add configurable interval value
* change float (array) return type to union type
* add default values for the params
Bug: 346604998
Flag: EXEMPT HAL changes
Test: atest VtsHalPowerTargetTest
Change-Id: I4422b8489da5bf072ad821d04f91fcfabccf9d98
diff --git a/power/aidl/default/Power.cpp b/power/aidl/default/Power.cpp
index d9353fe..8490b62 100644
--- a/power/aidl/default/Power.cpp
+++ b/power/aidl/default/Power.cpp
@@ -71,14 +71,22 @@
return ScopedAStatus::ok();
}
-ndk::ScopedAStatus Power::getCpuHeadroom(const CpuHeadroomParams& _,
- std::vector<float>* _aidl_return) {
- *_aidl_return = {0.5f};
- return ndk::ScopedAStatus::ok();
+ndk::ScopedAStatus Power::getCpuHeadroom(const CpuHeadroomParams& params,
+ CpuHeadroomResult* _aidl_return) {
+ if (params.selectionType == CpuHeadroomParams::SelectionType::ALL) {
+ _aidl_return->set<CpuHeadroomResult::globalHeadroom>(100.0f);
+ return ndk::ScopedAStatus::ok();
+ } else if (params.selectionType == CpuHeadroomParams::SelectionType::PER_CORE) {
+ std::vector<float> headroom = {50.0f, 100.0f};
+ _aidl_return->set<CpuHeadroomResult::perCoreHeadroom>(headroom);
+ return ndk::ScopedAStatus::ok();
+ }
+ return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
-ndk::ScopedAStatus Power::getGpuHeadroom(const GpuHeadroomParams& _, float* _aidl_return) {
- *_aidl_return = 0.5f;
+ndk::ScopedAStatus Power::getGpuHeadroom(const GpuHeadroomParams& _,
+ GpuHeadroomResult* _aidl_return) {
+ _aidl_return->set<GpuHeadroomResult::globalHeadroom>(100.0f);
return ndk::ScopedAStatus::ok();
}
diff --git a/power/aidl/default/Power.h b/power/aidl/default/Power.h
index 51528c6..c4aa7ab 100644
--- a/power/aidl/default/Power.h
+++ b/power/aidl/default/Power.h
@@ -46,9 +46,10 @@
ndk::ScopedAStatus closeSessionChannel(int32_t tgid, int32_t uid) override;
ndk::ScopedAStatus getSupportInfo(SupportInfo* _aidl_return) override;
ndk::ScopedAStatus getCpuHeadroom(const CpuHeadroomParams& params,
- std::vector<float>* _aidl_return) override;
+ CpuHeadroomResult* _aidl_return) override;
+
ndk::ScopedAStatus getGpuHeadroom(const GpuHeadroomParams& params,
- float* _aidl_return) override;
+ GpuHeadroomResult* _aidl_return) override;
ndk::ScopedAStatus getCpuHeadroomMinIntervalMillis(int64_t* _aidl_return) override;
ndk::ScopedAStatus getGpuHeadroomMinIntervalMillis(int64_t* _aidl_return) override;
ndk::ScopedAStatus sendCompositionData(const std::vector<CompositionData>& in_data) override;