diff options
author | Midas Chien <midaschieh@google.com> | 2022-02-16 01:59:39 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-02-16 01:59:39 +0000 |
commit | 80ee8c258befefd630f3caf4ebeb5bcc6e879ddb (patch) | |
tree | c9de0f2184166e7aac5bf2fc55ed3647e70407a9 /hwc3 | |
parent | f81f10cb3e6eb0d941bf159c04a634df6cfbb1bf (diff) | |
parent | 91700d7c6e6cea728e3d8525745ddbf8a0517c98 (diff) |
Merge "libhwc2.1: support setIdleTimerEnabled"
Diffstat (limited to 'hwc3')
-rw-r--r-- | hwc3/ComposerClient.cpp | 10 | ||||
-rw-r--r-- | hwc3/impl/HalImpl.cpp | 12 | ||||
-rw-r--r-- | hwc3/impl/HalImpl.h | 1 | ||||
-rw-r--r-- | hwc3/include/IComposerHal.h | 2 |
4 files changed, 22 insertions, 3 deletions
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp index 848d1f7..49d0e80 100644 --- a/hwc3/ComposerClient.cpp +++ b/hwc3/ComposerClient.cpp @@ -162,6 +162,16 @@ ndk::ScopedAStatus ComposerClient::getDisplayCapabilities(int64_t display, return TO_BINDER_STATUS(err); } + bool support = false; + err = mHal->getDisplayIdleTimerSupport(display, support); + if (err != ::android::OK) { + LOG(ERROR) << "failed to getDisplayIdleTimerSupport: " << err; + } + + if (support) { + caps->push_back(DisplayCapability::DISPLAY_IDLE_TIMER); + } + return TO_BINDER_STATUS(err); } diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp index 240edff..4d50225 100644 --- a/hwc3/impl/HalImpl.cpp +++ b/hwc3/impl/HalImpl.cpp @@ -939,12 +939,11 @@ int32_t HalImpl::setVsyncEnabled(int64_t display, bool enabled) { return halDisplay->setVsyncEnabled(hwcEnable); } -int32_t HalImpl::setIdleTimerEnabled(int64_t display, int32_t __unused timeout) { +int32_t HalImpl::setIdleTimerEnabled(int64_t display, int32_t timeout) { ExynosDisplay* halDisplay; RET_IF_ERR(getHalDisplay(display, halDisplay)); - // TODO(b/198808492): implement setIdleTimerEnabled - return HWC2_ERROR_UNSUPPORTED; + return halDisplay->setDisplayIdleTimer(timeout); } int32_t HalImpl::validateDisplay(int64_t display, std::vector<int64_t>* outChangedLayers, @@ -1014,4 +1013,11 @@ int32_t HalImpl::getRCDLayerSupport(int64_t display, bool& outSupport) { return halDisplay->getRCDLayerSupport(outSupport); } +int32_t HalImpl::getDisplayIdleTimerSupport(int64_t display, bool& outSupport) { + ExynosDisplay* halDisplay; + RET_IF_ERR(getHalDisplay(display, halDisplay)); + + return halDisplay->getDisplayIdleTimerSupport(outSupport); +} + } // namespace aidl::android::hardware::graphics::composer3::impl diff --git a/hwc3/impl/HalImpl.h b/hwc3/impl/HalImpl.h index 2c6d540..d60d7d0 100644 --- a/hwc3/impl/HalImpl.h +++ b/hwc3/impl/HalImpl.h @@ -135,6 +135,7 @@ class HalImpl : public IComposerHal { int32_t setReadbackBuffer(int64_t display, buffer_handle_t buffer, const ndk::ScopedFileDescriptor& releaseFence) override; int32_t setVsyncEnabled(int64_t display, bool enabled) override; + int32_t getDisplayIdleTimerSupport(int64_t display, bool& outSupport) override; int32_t setIdleTimerEnabled(int64_t display, int32_t timeout) override; int32_t getRCDLayerSupport(int64_t display, bool& outSupport) override; int32_t validateDisplay(int64_t display, std::vector<int64_t>* outChangedLayers, diff --git a/hwc3/include/IComposerHal.h b/hwc3/include/IComposerHal.h index 693c2b1..00bfdee 100644 --- a/hwc3/include/IComposerHal.h +++ b/hwc3/include/IComposerHal.h @@ -119,6 +119,8 @@ class IComposerHal { virtual int32_t getDisplayAttribute(int64_t display, int32_t config, DisplayAttribute attribute, int32_t* outValue) = 0; virtual int32_t getDisplayBrightnessSupport(int64_t display, bool& outSupport) = 0; + virtual int32_t getDisplayIdleTimerSupport(int64_t display, bool& outSupport) = 0; + virtual int32_t getDisplayCapabilities(int64_t display, std::vector<DisplayCapability>* caps) = 0; virtual int32_t getDisplayConfigs(int64_t display, std::vector<int32_t>* configs) = 0; |