diff options
author | Leo Chen <yinchiuan@google.com> | 2023-08-25 08:48:44 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-08-25 08:48:44 +0000 |
commit | 3c02b0a2adb6395e6c47a6e8b22d2a7830b5216c (patch) | |
tree | cc4e1cce22196439a899ff4355007df9afb5efaa | |
parent | 113c24dfd160d0ad17b8c989b7409be9a39efda4 (diff) | |
parent | 5a124a58eed176b3b85175ddd66e9163f2c4a709 (diff) | |
download | zuma-3c02b0a2adb6395e6c47a6e8b22d2a7830b5216c.tar.gz |
libhwc2.1: libdisplayinterface: override sendHistogramChannelIoctl am: 2ccf04c16d am: 5a124a58ee
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/zuma/+/24428372
Change-Id: I099d3f2f1c8b0eb8ce2163f50d9bf8720e4700d6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp | 23 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 12 |
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; |