Skip to content

Commit 2b9ffc0

Browse files
AndroidMatt1Android (Google) Code Review
authored andcommitted
Merge "Refactor initial support check to use SupportInfo" into main
2 parents 667fb71 + 8f997cb commit 2b9ffc0

5 files changed

Lines changed: 23 additions & 0 deletions

File tree

include/powermanager/PowerHalController.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ class PowerHalController : public HalWrapper {
7272
virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(
7373
int tgid, int uid) override;
7474
virtual HalResult<void> closeSessionChannel(int tgid, int uid) override;
75+
virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
7576

7677
private:
7778
std::mutex mConnectedHalMutex;

include/powermanager/PowerHalWrapper.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class HalWrapper {
6363
virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
6464
int uid) = 0;
6565
virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0;
66+
virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0;
6667
};
6768

6869
// Empty Power HAL wrapper that ignores all api calls.
@@ -85,6 +86,7 @@ class EmptyHalWrapper : public HalWrapper {
8586
HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
8687
int uid) override;
8788
HalResult<void> closeSessionChannel(int tgid, int uid) override;
89+
HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
8890

8991
protected:
9092
virtual const char* getUnsupportedMessage();
@@ -170,6 +172,7 @@ class AidlHalWrapper : public EmptyHalWrapper {
170172
HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
171173
int uid) override;
172174
HalResult<void> closeSessionChannel(int tgid, int uid) override;
175+
HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
173176

174177
protected:
175178
const char* getUnsupportedMessage() override;

services/powermanager/PowerHalController.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@ HalResult<void> PowerHalController::closeSessionChannel(int tgid, int uid) {
168168
"closeSessionChannel"));
169169
}
170170

171+
HalResult<aidl::android::hardware::power::SupportInfo> PowerHalController::getSupportInfo() {
172+
std::shared_ptr<HalWrapper> handle = initHal();
173+
return CACHE_SUPPORT(6, processHalResult(handle->getSupportInfo(), "getSupportInfo"));
174+
}
175+
171176
} // namespace power
172177

173178
} // namespace android

services/powermanager/PowerHalWrapper.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <aidl/android/hardware/power/Boost.h>
1919
#include <aidl/android/hardware/power/IPowerHintSession.h>
2020
#include <aidl/android/hardware/power/Mode.h>
21+
#include <aidl/android/hardware/power/SupportInfo.h>
2122
#include <powermanager/HalResult.h>
2223
#include <powermanager/PowerHalWrapper.h>
2324
#include <utils/Log.h>
@@ -73,6 +74,11 @@ HalResult<void> EmptyHalWrapper::closeSessionChannel(int, int) {
7374
return HalResult<void>::unsupported();
7475
}
7576

77+
HalResult<Aidl::SupportInfo> EmptyHalWrapper::getSupportInfo() {
78+
ALOGV("Skipped getSupportInfo because %s", getUnsupportedMessage());
79+
return HalResult<Aidl::SupportInfo>::unsupported();
80+
}
81+
7682
const char* EmptyHalWrapper::getUnsupportedMessage() {
7783
return "Power HAL is not supported";
7884
}
@@ -280,6 +286,12 @@ HalResult<void> AidlHalWrapper::closeSessionChannel(int tgid, int uid) {
280286
return HalResult<void>::fromStatus(mHandle->closeSessionChannel(tgid, uid));
281287
}
282288

289+
HalResult<Aidl::SupportInfo> AidlHalWrapper::getSupportInfo() {
290+
Aidl::SupportInfo support;
291+
auto result = mHandle->getSupportInfo(&support);
292+
return HalResult<Aidl::SupportInfo>::fromStatus(result, std::move(support));
293+
}
294+
283295
const char* AidlHalWrapper::getUnsupportedMessage() {
284296
return "Power HAL doesn't support it";
285297
}

services/surfaceflinger/tests/unittests/mock/PowerAdvisor/MockPowerHalController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ class MockPowerHalController : public power::PowerHalController {
5454
MOCK_METHOD(HalResult<aidl::android::hardware::power::ChannelConfig>, getSessionChannel,
5555
(int tgid, int uid), (override));
5656
MOCK_METHOD(HalResult<void>, closeSessionChannel, (int tgid, int uid), (override));
57+
MOCK_METHOD(HalResult<aidl::android::hardware::power::SupportInfo>, getSupportInfo, (),
58+
(override));
5759
};
5860

5961
} // namespace android::adpf::mock

0 commit comments

Comments
 (0)