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

Commit 1e4ff858 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 13235988 from 16416060 to 25Q2-release

Change-Id: I070173f3db3350e1cdba66c0f813f30fabf12082
parents deb1e5a3 16416060
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -241,7 +241,7 @@ bool GLHelper::createWindowSurface(uint32_t w, uint32_t h,
    status_t err;
    status_t err;


    if (mSurfaceComposerClient == nullptr) {
    if (mSurfaceComposerClient == nullptr) {
        mSurfaceComposerClient = new SurfaceComposerClient;
        mSurfaceComposerClient = sp<SurfaceComposerClient>::make();
    }
    }
    err = mSurfaceComposerClient->initCheck();
    err = mSurfaceComposerClient->initCheck();
    if (err != NO_ERROR) {
    if (err != NO_ERROR) {
+3 −0
Original line number Original line Diff line number Diff line
@@ -73,6 +73,9 @@ public:
            int tgid, int uid) override;
            int tgid, int uid) override;
    virtual HalResult<void> closeSessionChannel(int tgid, int uid) override;
    virtual HalResult<void> closeSessionChannel(int tgid, int uid) override;
    virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    virtual HalResult<void> sendCompositionData(
            const std::vector<hal::CompositionData>& data) override;
    virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override;


private:
private:
    std::mutex mConnectedHalMutex;
    std::mutex mConnectedHalMutex;
+31 −39
Original line number Original line Diff line number Diff line
@@ -18,6 +18,8 @@


#include <aidl/android/hardware/power/Boost.h>
#include <aidl/android/hardware/power/Boost.h>
#include <aidl/android/hardware/power/ChannelConfig.h>
#include <aidl/android/hardware/power/ChannelConfig.h>
#include <aidl/android/hardware/power/CompositionData.h>
#include <aidl/android/hardware/power/CompositionUpdate.h>
#include <aidl/android/hardware/power/IPower.h>
#include <aidl/android/hardware/power/IPower.h>
#include <aidl/android/hardware/power/IPowerHintSession.h>
#include <aidl/android/hardware/power/IPowerHintSession.h>
#include <aidl/android/hardware/power/Mode.h>
#include <aidl/android/hardware/power/Mode.h>
@@ -37,6 +39,8 @@ namespace android {


namespace power {
namespace power {


namespace hal = aidl::android::hardware::power;

// State of Power HAL support for individual apis.
// State of Power HAL support for individual apis.
enum class HalSupport {
enum class HalSupport {
    UNKNOWN = 0,
    UNKNOWN = 0,
@@ -49,21 +53,20 @@ class HalWrapper {
public:
public:
    virtual ~HalWrapper() = default;
    virtual ~HalWrapper() = default;


    virtual HalResult<void> setBoost(aidl::android::hardware::power::Boost boost,
    virtual HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) = 0;
                                     int32_t durationMs) = 0;
    virtual HalResult<void> setMode(hal::Mode mode, bool enabled) = 0;
    virtual HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) = 0;
    virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
    virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int64_t durationNanos) = 0;
            int64_t durationNanos) = 0;
    virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
    virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            aidl::android::hardware::power::SessionTag tag,
            hal::SessionTag tag, hal::SessionConfig* config) = 0;
            aidl::android::hardware::power::SessionConfig* config) = 0;
    virtual HalResult<int64_t> getHintSessionPreferredRate() = 0;
    virtual HalResult<int64_t> getHintSessionPreferredRate() = 0;
    virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
    virtual HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) = 0;
                                                                                       int uid) = 0;
    virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0;
    virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0;
    virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0;
    virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0;
    virtual HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) = 0;
    virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) = 0;
};
};


// Empty Power HAL wrapper that ignores all api calls.
// Empty Power HAL wrapper that ignores all api calls.
@@ -72,21 +75,20 @@ public:
    EmptyHalWrapper() = default;
    EmptyHalWrapper() = default;
    ~EmptyHalWrapper() override = default;
    ~EmptyHalWrapper() override = default;


    HalResult<void> setBoost(aidl::android::hardware::power::Boost boost,
    HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override;
                             int32_t durationMs) override;
    HalResult<void> setMode(hal::Mode mode, bool enabled) override;
    HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override;
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int64_t durationNanos) override;
            int64_t durationNanos) override;
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            aidl::android::hardware::power::SessionTag tag,
            hal::SessionTag tag, hal::SessionConfig* config) override;
            aidl::android::hardware::power::SessionConfig* config) override;
    HalResult<int64_t> getHintSessionPreferredRate() override;
    HalResult<int64_t> getHintSessionPreferredRate() override;
    HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
    HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override;
                                                                               int uid) override;
    HalResult<void> closeSessionChannel(int tgid, int uid) override;
    HalResult<void> closeSessionChannel(int tgid, int uid) override;
    HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override;
    HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override;


protected:
protected:
    virtual const char* getUnsupportedMessage();
    virtual const char* getUnsupportedMessage();
@@ -99,9 +101,8 @@ public:
          : mHandleV1_0(std::move(handleV1_0)) {}
          : mHandleV1_0(std::move(handleV1_0)) {}
    ~HidlHalWrapperV1_0() override = default;
    ~HidlHalWrapperV1_0() override = default;


    HalResult<void> setBoost(aidl::android::hardware::power::Boost boost,
    HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override;
                             int32_t durationMs) override;
    HalResult<void> setMode(hal::Mode mode, bool enabled) override;
    HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override;


protected:
protected:
    const sp<hardware::power::V1_0::IPower> mHandleV1_0;
    const sp<hardware::power::V1_0::IPower> mHandleV1_0;
@@ -127,9 +128,8 @@ protected:
// Wrapper for the HIDL Power HAL v1.2.
// Wrapper for the HIDL Power HAL v1.2.
class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 {
class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 {
public:
public:
    HalResult<void> setBoost(aidl::android::hardware::power::Boost boost,
    HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override;
                             int32_t durationMs) override;
    HalResult<void> setMode(hal::Mode mode, bool enabled) override;
    HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override;
    explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2)
    explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2)
          : HidlHalWrapperV1_1(std::move(handleV1_2)) {}
          : HidlHalWrapperV1_1(std::move(handleV1_2)) {}
    ~HidlHalWrapperV1_2() override = default;
    ~HidlHalWrapperV1_2() override = default;
@@ -141,7 +141,7 @@ protected:
// Wrapper for the HIDL Power HAL v1.3.
// Wrapper for the HIDL Power HAL v1.3.
class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 {
class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 {
public:
public:
    HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override;
    HalResult<void> setMode(hal::Mode mode, bool enabled) override;
    explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3)
    explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3)
          : HidlHalWrapperV1_2(std::move(handleV1_3)) {}
          : HidlHalWrapperV1_2(std::move(handleV1_3)) {}
    ~HidlHalWrapperV1_3() override = default;
    ~HidlHalWrapperV1_3() override = default;
@@ -153,26 +153,24 @@ protected:
// Wrapper for the AIDL Power HAL.
// Wrapper for the AIDL Power HAL.
class AidlHalWrapper : public EmptyHalWrapper {
class AidlHalWrapper : public EmptyHalWrapper {
public:
public:
    explicit AidlHalWrapper(std::shared_ptr<aidl::android::hardware::power::IPower> handle)
    explicit AidlHalWrapper(std::shared_ptr<hal::IPower> handle) : mHandle(std::move(handle)) {}
          : mHandle(std::move(handle)) {}
    ~AidlHalWrapper() override = default;
    ~AidlHalWrapper() override = default;


    HalResult<void> setBoost(aidl::android::hardware::power::Boost boost,
    HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override;
                             int32_t durationMs) override;
    HalResult<void> setMode(hal::Mode mode, bool enabled) override;
    HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override;
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
            int64_t durationNanos) override;
            int64_t durationNanos) override;
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
    HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig(
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
            aidl::android::hardware::power::SessionTag tag,
            hal::SessionTag tag, hal::SessionConfig* config) override;
            aidl::android::hardware::power::SessionConfig* config) override;


    HalResult<int64_t> getHintSessionPreferredRate() override;
    HalResult<int64_t> getHintSessionPreferredRate() override;
    HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid,
    HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override;
                                                                               int uid) override;
    HalResult<void> closeSessionChannel(int tgid, int uid) override;
    HalResult<void> closeSessionChannel(int tgid, int uid) override;
    HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override;
    HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override;
    HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override;


protected:
protected:
    const char* getUnsupportedMessage() override;
    const char* getUnsupportedMessage() override;
@@ -181,16 +179,10 @@ private:
    // Control access to the boost and mode supported arrays.
    // Control access to the boost and mode supported arrays.
    std::mutex mBoostMutex;
    std::mutex mBoostMutex;
    std::mutex mModeMutex;
    std::mutex mModeMutex;
    std::shared_ptr<aidl::android::hardware::power::IPower> mHandle;
    std::shared_ptr<hal::IPower> mHandle;
    std::array<HalSupport,
    std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Boost>().end() - 1)) + 1>
               static_cast<int32_t>(
                       *(ndk::enum_range<aidl::android::hardware::power::Boost>().end() - 1)) +
                       1>
            mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN};
            mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN};
    std::array<HalSupport,
    std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Mode>().end() - 1)) + 1>
               static_cast<int32_t>(
                       *(ndk::enum_range<aidl::android::hardware::power::Mode>().end() - 1)) +
                       1>
            mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN};
            mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN};
};
};


+2 −0
Original line number Original line Diff line number Diff line
@@ -45,9 +45,11 @@ public:
    virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type,
    virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type,
                                    bool in_enabled);
                                    bool in_enabled);
    virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig();
    virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig();
    std::optional<int> getSessionId();


private:
private:
    std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession;
    std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession;
    std::optional<int> mSessionId;
    int32_t mInterfaceVersion;
    int32_t mInterfaceVersion;
};
};


+3 −0
Original line number Original line Diff line number Diff line
@@ -445,6 +445,9 @@ status_t BBinder::linkToDeath(
    const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/,
    const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/,
    uint32_t /*flags*/)
    uint32_t /*flags*/)
{
{
    // BBinder::linkToDeath is invalid because this process owns this binder.
    // The DeathRecipient is called on BpBinders when the process owning the
    // binder node dies.
    return INVALID_OPERATION;
    return INVALID_OPERATION;
}
}


Loading