summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Chen <yinchiuan@google.com>2023-08-25 08:15:07 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-08-25 08:15:07 +0000
commit5a124a58eed176b3b85175ddd66e9163f2c4a709 (patch)
treecc4e1cce22196439a899ff4355007df9afb5efaa
parentd437e2c90e46bfcdd0c49ccfa19194757e10c061 (diff)
parent2ccf04c16d30086931e02220fd24ed38f341c181 (diff)
downloadzuma-5a124a58eed176b3b85175ddd66e9163f2c4a709.tar.gz
libhwc2.1: libdisplayinterface: override sendHistogramChannelIoctl am: 2ccf04c16d
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/zuma/+/24428372 Change-Id: If0a3946d40de5b3931b19109cb54d49dfa89300f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp23
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h12
2 files changed, 32 insertions, 3 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
index 1973006..83fc581 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
@@ -51,3 +51,26 @@ ExynosPrimaryDisplayDrmInterfaceModule::ExynosPrimaryDisplayDrmInterfaceModule(E
std::memcpy(mMonitorDescription.data(), panelModel.c_str(), mMonitorDescription.size());
}
+
+// TODO: b/295990513 - Remove the if defined after kernel prebuilts are merged.
+#if defined(EXYNOS_HISTOGRAM_CHANNEL_REQUEST)
+int32_t ExynosPrimaryDisplayDrmInterfaceModule::sendHistogramChannelIoctl(HistogramChannelIoctl_t control, uint8_t channelId) const {
+ struct exynos_drm_histogram_channel_request histogramRequest;
+
+ histogramRequest.crtc_id = mDrmCrtc->id();
+ histogramRequest.hist_id = channelId;
+
+ if (control == HistogramChannelIoctl_t::REQUEST) {
+ ATRACE_NAME(String8::format("requestIoctl #%u", channelId).string());
+ return mDrmDevice->CallVendorIoctl(DRM_IOCTL_EXYNOS_HISTOGRAM_CHANNEL_REQUEST,
+ (void *)&histogramRequest);
+ } else if (control == HistogramChannelIoctl_t::CANCEL) {
+ ATRACE_NAME(String8::format("cancelIoctl #%u", channelId).string());
+ return mDrmDevice->CallVendorIoctl(DRM_IOCTL_EXYNOS_HISTOGRAM_CHANNEL_CANCEL,
+ (void *)&histogramRequest);
+ } else {
+ ALOGE("%s: unknown control %d", __func__, (int)control);
+ return BAD_VALUE;
+ }
+}
+#endif
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
index 45783b1..f654d4b 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h
@@ -23,10 +23,16 @@
namespace zuma {
- class ExynosPrimaryDisplayDrmInterfaceModule : public gs201::ExynosPrimaryDisplayDrmInterfaceModule {
+class ExynosPrimaryDisplayDrmInterfaceModule
+ : public gs201::ExynosPrimaryDisplayDrmInterfaceModule {
public:
- ExynosPrimaryDisplayDrmInterfaceModule(ExynosDisplay *exynosDisplay);
- };
+ ExynosPrimaryDisplayDrmInterfaceModule(ExynosDisplay *exynosDisplay);
+// TODO: b/295990513 - Remove the if defined after kernel prebuilts are merged.
+#if defined(EXYNOS_HISTOGRAM_CHANNEL_REQUEST)
+ virtual int32_t sendHistogramChannelIoctl(HistogramChannelIoctl_t control,
+ uint8_t channelId) const override;
+#endif
+};
using ExynosExternalDisplayDrmInterfaceModule = gs201::ExynosExternalDisplayDrmInterfaceModule;