diff options
author | Jeremy DeHaan <jdehaan@google.com> | 2022-06-01 21:16:11 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-01 21:16:11 +0000 |
commit | aa51ad896fa8e8eda0c141ca8407806a5fc65df6 (patch) | |
tree | cbeca9ef45cd5639bfada3487848258e7ab7574d | |
parent | b9f0ab612686bb322f978da70486f6f3ce1d62f2 (diff) | |
parent | aec69a49e47076288e01c2b0f69c64ef83451c66 (diff) | |
download | common-aa51ad896fa8e8eda0c141ca8407806a5fc65df6.tar.gz |
Merge "libhwc2.1: expose panel calibration status" into tm-dev
-rw-r--r-- | hwc3/Android.mk | 2 | ||||
-rw-r--r-- | libhwc2.1/Android.mk | 6 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDevice.cpp | 5 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDevice.h | 3 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDisplay.h | 4 | ||||
-rw-r--r-- | libhwc2.1/pixel-display-default.xml | 2 | ||||
-rw-r--r-- | libhwc2.1/pixel-display.cpp | 15 | ||||
-rw-r--r-- | libhwc2.1/pixel-display.h | 9 |
8 files changed, 41 insertions, 5 deletions
diff --git a/hwc3/Android.mk b/hwc3/Android.mk index a942355..f233aab 100644 --- a/hwc3/Android.mk +++ b/hwc3/Android.mk @@ -35,7 +35,7 @@ LOCAL_SHARED_LIBRARIES := android.hardware.graphics.composer3-V1-ndk \ android.hardware.graphics.composer@2.1-resources \ android.hardware.graphics.composer@2.2-resources \ android.hardware.graphics.composer@2.4 \ - com.google.hardware.pixel.display-V4-ndk \ + com.google.hardware.pixel.display-V6-ndk \ libbase \ libbinder \ libbinder_ndk \ diff --git a/libhwc2.1/Android.mk b/libhwc2.1/Android.mk index 7a5e885..1918890 100644 --- a/libhwc2.1/Android.mk +++ b/libhwc2.1/Android.mk @@ -68,7 +68,7 @@ LOCAL_SHARED_LIBRARIES := liblog libcutils libhardware \ android.hardware.power-V2-ndk pixel-power-ext-V1-ndk LOCAL_SHARED_LIBRARIES += android.hardware.graphics.composer3-V1-ndk \ - com.google.hardware.pixel.display-V4-ndk \ + com.google.hardware.pixel.display-V6-ndk \ libbinder_ndk \ libbase \ libpng \ @@ -155,7 +155,7 @@ LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libbinder libexynosdisplay l android.hardware.graphics.allocator@2.0 \ android.hardware.graphics.mapper@2.0 -LOCAL_SHARED_LIBRARIES += com.google.hardware.pixel.display-V4-ndk \ +LOCAL_SHARED_LIBRARIES += com.google.hardware.pixel.display-V6-ndk \ libbinder_ndk \ libbase @@ -216,7 +216,7 @@ LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libexynosdisplay libacryl \ libui LOCAL_SHARED_LIBRARIES += android.hardware.graphics.composer3-V1-ndk \ - com.google.hardware.pixel.display-V4-ndk \ + com.google.hardware.pixel.display-V6-ndk \ libbinder_ndk \ libbase diff --git a/libhwc2.1/libdevice/ExynosDevice.cpp b/libhwc2.1/libdevice/ExynosDevice.cpp index d4e82c1..99f9438 100644 --- a/libhwc2.1/libdevice/ExynosDevice.cpp +++ b/libhwc2.1/libdevice/ExynosDevice.cpp @@ -1139,6 +1139,11 @@ bool ExynosDevice::getLhbmState() { return false; } +PanelCalibrationStatus ExynosDevice::getPanelCalibrationStatus() { + auto display = getDisplay(getDisplayId(HWC_DISPLAY_PRIMARY, 0)); + return display->getPanelCalibrationStatus(); +} + uint32_t ExynosDevice::getWindowPlaneNum() { /* diff --git a/libhwc2.1/libdevice/ExynosDevice.h b/libhwc2.1/libdevice/ExynosDevice.h index 653323d..1dd1145 100644 --- a/libhwc2.1/libdevice/ExynosDevice.h +++ b/libhwc2.1/libdevice/ExynosDevice.h @@ -59,6 +59,7 @@ using HbmState = ::aidl::com::google::hardware::pixel::display::HbmState; using LbeState = ::aidl::com::google::hardware::pixel::display::LbeState; +using PanelCalibrationStatus = ::aidl::com::google::hardware::pixel::display::PanelCalibrationStatus; using namespace android; @@ -357,6 +358,8 @@ class ExynosDevice { bool isColorCalibratedByDevice(); + PanelCalibrationStatus getPanelCalibrationStatus(); + public: void enterToTUI() { mIsInTUI = true; }; void exitFromTUI() { mIsInTUI = false; }; diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h index 717ef88..1875f94 100644 --- a/libhwc2.1/libdevice/ExynosDisplay.h +++ b/libhwc2.1/libdevice/ExynosDisplay.h @@ -1199,6 +1199,10 @@ class ExynosDisplay { } virtual void handleDisplayIdleEnter(const uint32_t __unused idleTeRefreshRate) {} + virtual PanelCalibrationStatus getPanelCalibrationStatus() { + return PanelCalibrationStatus::UNCALIBRATED; + } + /* getDisplayPreAssignBit support mIndex up to 1. It supports only dual LCD and 2 external displays */ inline uint32_t getDisplayPreAssignBit() { diff --git a/libhwc2.1/pixel-display-default.xml b/libhwc2.1/pixel-display-default.xml index 31c569e..fc10d6a 100644 --- a/libhwc2.1/pixel-display-default.xml +++ b/libhwc2.1/pixel-display-default.xml @@ -1,7 +1,7 @@ <manifest version="1.0" type="device"> <hal format="aidl"> <name>com.google.hardware.pixel.display</name> - <version>4</version> + <version>6</version> <fqname>IDisplay/default</fqname> </hal> </manifest> diff --git a/libhwc2.1/pixel-display.cpp b/libhwc2.1/pixel-display.cpp index 409cfe0..629a137 100644 --- a/libhwc2.1/pixel-display.cpp +++ b/libhwc2.1/pixel-display.cpp @@ -162,6 +162,21 @@ ndk::ScopedAStatus Display::setRefreshRateThrottle(int delayMs, int *_aidl_retur } return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } + +ndk::ScopedAStatus Display::histogramSample(const RoiRect &roi, const Weight &weight, + HistogramPos pos, Priority pri, + std::vector<char16_t> *histogrambuffer, + HistogramErrorCode *_aidl_return) { + return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); +} + +ndk::ScopedAStatus Display::getPanelCalibrationStatus(PanelCalibrationStatus *_aidl_return){ + if (mDevice) { + *_aidl_return = mDevice->getPanelCalibrationStatus(); + return ndk::ScopedAStatus::ok(); + } + return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); +} } // namespace display } // namespace pixel } // namespace hardware diff --git a/libhwc2.1/pixel-display.h b/libhwc2.1/pixel-display.h index f0fd627..4ca69d7 100644 --- a/libhwc2.1/pixel-display.h +++ b/libhwc2.1/pixel-display.h @@ -28,6 +28,11 @@ namespace pixel { namespace display { using aidl::android::hardware::common::NativeHandle; +using RoiRect = ::aidl::android::hardware::graphics::common::Rect; +using Weight = ::aidl::com::google::hardware::pixel::display::Weight; +using HistogramPos = ::aidl::com::google::hardware::pixel::display::HistogramPos; +using Priority = ::aidl::com::google::hardware::pixel::display::Priority; +using HistogramErrorCode = ::aidl::com::google::hardware::pixel::display::HistogramErrorCode; // Default implementation class Display : public BnDisplay { @@ -49,6 +54,10 @@ public: int *_aidl_return) override; ndk::ScopedAStatus setMinIdleRefreshRate(int fps, int *_aidl_return) override; ndk::ScopedAStatus setRefreshRateThrottle(int delayMs, int *_aidl_return) override; + ndk::ScopedAStatus histogramSample(const RoiRect &roi, const Weight &weight, HistogramPos pos, + Priority pri, std::vector<char16_t> *histogrambuffer, + HistogramErrorCode *_aidl_return) override; + ndk::ScopedAStatus getPanelCalibrationStatus(PanelCalibrationStatus *_aidl_return) override; private: ExynosDevice *mDevice = nullptr; |