summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy DeHaan <jdehaan@google.com>2022-06-01 21:16:11 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-06-01 21:16:11 +0000
commitaa51ad896fa8e8eda0c141ca8407806a5fc65df6 (patch)
treecbeca9ef45cd5639bfada3487848258e7ab7574d
parentb9f0ab612686bb322f978da70486f6f3ce1d62f2 (diff)
parentaec69a49e47076288e01c2b0f69c64ef83451c66 (diff)
downloadcommon-aa51ad896fa8e8eda0c141ca8407806a5fc65df6.tar.gz
Merge "libhwc2.1: expose panel calibration status" into tm-dev
-rw-r--r--hwc3/Android.mk2
-rw-r--r--libhwc2.1/Android.mk6
-rw-r--r--libhwc2.1/libdevice/ExynosDevice.cpp5
-rw-r--r--libhwc2.1/libdevice/ExynosDevice.h3
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.h4
-rw-r--r--libhwc2.1/pixel-display-default.xml2
-rw-r--r--libhwc2.1/pixel-display.cpp15
-rw-r--r--libhwc2.1/pixel-display.h9
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;