Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71425310 authored by Matt Buckley's avatar Matt Buckley Committed by Android (Google) Code Review
Browse files

Merge "Update SF to use createHintSessionWithConfig" into main

parents 4ec35c6e ba180cc1
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ namespace impl {
using aidl::android::hardware::power::Boost;
using aidl::android::hardware::power::Mode;
using aidl::android::hardware::power::SessionHint;
using aidl::android::hardware::power::SessionTag;
using aidl::android::hardware::power::WorkDuration;

PowerAdvisor::~PowerAdvisor() = default;
@@ -206,9 +207,12 @@ bool PowerAdvisor::supportsPowerHintSession() {

bool PowerAdvisor::ensurePowerHintSessionRunning() {
    if (mHintSession == nullptr && !mHintSessionThreadIds.empty() && usePowerHintSession()) {
        auto ret = getPowerHal().createHintSession(getpid(), static_cast<int32_t>(getuid()),
                                                   mHintSessionThreadIds, mTargetDuration.ns());

        auto ret =
                getPowerHal().createHintSessionWithConfig(getpid(), static_cast<int32_t>(getuid()),
                                                          mHintSessionThreadIds,
                                                          mTargetDuration.ns(),
                                                          SessionTag::SURFACEFLINGER,
                                                          &mSessionConfig);
        if (ret.isOk()) {
            mHintSession = ret.value();
        }
+3 −0
Original line number Diff line number Diff line
@@ -292,6 +292,9 @@ private:
    // Whether we should send reportActualWorkDuration calls
    static const bool sUseReportActualDuration;

    // Metadata about the session returned from PowerHAL
    aidl::android::hardware::power::SessionConfig mSessionConfig;

    // How long we expect hwc to run after the present call until it waits for the fence
    static constexpr const Duration kFenceWaitStartDelayValidated{150us};
    static constexpr const Duration kFenceWaitStartDelaySkippedValidate{250us};
+9 −7
Original line number Diff line number Diff line
@@ -74,12 +74,14 @@ void PowerAdvisorTest::SetUp() {
void PowerAdvisorTest::startPowerHintSession(bool returnValidSession) {
    mMockPowerHintSession = ndk::SharedRefBase::make<NiceMock<MockIPowerHintSession>>();
    if (returnValidSession) {
        ON_CALL(*mMockPowerHalController, createHintSession)
                .WillByDefault(
        ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
                .WillByDefault(DoAll(SetArgPointee<5>(aidl::android::hardware::power::SessionConfig{
                                             .id = 12}),
                                     Return(HalResult<std::shared_ptr<IPowerHintSession>>::
                                       fromStatus(binder::Status::ok(), mMockPowerHintSession)));
                                                    fromStatus(binder::Status::ok(),
                                                               mMockPowerHintSession))));
    } else {
        ON_CALL(*mMockPowerHalController, createHintSession)
        ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
                .WillByDefault(Return(HalResult<std::shared_ptr<IPowerHintSession>>::
                                              fromStatus(binder::Status::ok(), nullptr)));
    }
@@ -283,7 +285,7 @@ TEST_F(PowerAdvisorTest, hintSessionValidWhenNullFromPowerHAL) {
}

TEST_F(PowerAdvisorTest, hintSessionOnlyCreatedOnce) {
    EXPECT_CALL(*mMockPowerHalController, createHintSession(_, _, _, _)).Times(1);
    EXPECT_CALL(*mMockPowerHalController, createHintSessionWithConfig(_, _, _, _, _, _)).Times(1);
    mPowerAdvisor->onBootFinished();
    startPowerHintSession();
    mPowerAdvisor->startPowerHintSession({1, 2, 3});
@@ -335,7 +337,7 @@ TEST_F(PowerAdvisorTest, hintSessionTestNotifyReportRace) {
        return ndk::ScopedAStatus::fromExceptionCode(-127);
    });

    ON_CALL(*mMockPowerHalController, createHintSession)
    ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
            .WillByDefault(Return(
                    HalResult<std::shared_ptr<IPowerHintSession>>::
                            fromStatus(ndk::ScopedAStatus::fromExceptionCode(-127), nullptr)));