summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Volk <servolk@google.com>2023-10-12 17:53:46 +0000
committerSergey Volk <servolk@google.com>2023-10-12 23:05:00 +0000
commitbfb2f3727152511d01101880c0c96a372599c016 (patch)
tree186d9e1f246b9fba133a421c33ec07ff3493111f
parentf09c2423e7d184f604216345d9670c7c17c34263 (diff)
downloadgs101-bfb2f3727152511d01101880c0c96a372599c016.tar.gz
displaycolor: Add support for external displays
Assign the correct display type in getDisplayInfo, according to mType and mIndex. Bug: 288608645 Test: manual test on Pixel Fold Change-Id: I0857abc32faaf1b5d368ad04d9f3c41827a744e7
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
index 9d5f1c1..5e19626 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.cpp
@@ -440,14 +440,26 @@ uint32_t ExynosDisplayDrmInterfaceModule::SaveBlob::getBlob(uint32_t type)
void ExynosDisplayDrmInterfaceModule::getDisplayInfo(
std::vector<displaycolor::DisplayInfo> &display_info) {
- displaycolor::DisplayInfo primary_display;
-
- primary_display.brightness_ranges =
- mExynosDisplay->mBrightnessController->getBrightnessRanges();
- primary_display.panel_name = GetPanelName();
- primary_display.panel_serial = GetPanelSerial();
+ displaycolor::DisplayInfo disp_info;
+
+ disp_info.brightness_ranges = mExynosDisplay->mBrightnessController->getBrightnessRanges();
+ if (mExynosDisplay->mType == HWC_DISPLAY_PRIMARY) {
+ disp_info.panel_name = GetPanelName();
+ disp_info.panel_serial = GetPanelSerial();
+ if (mExynosDisplay->mIndex == 0)
+ disp_info.display_type = DisplayType::DISPLAY_PRIMARY;
+ else
+ disp_info.display_type = DisplayType::DISPLAY_SECONDARY;
+ } else if (mExynosDisplay->mType == HWC_DISPLAY_EXTERNAL) {
+ disp_info.display_type = DisplayType::DISPLAY_EXTERNAL;
+ disp_info.panel_name = "external_display";
+ disp_info.panel_serial = "0001";
+ } else {
+ ALOGE("Unsupported display type (%d) in getDisplayInfo!", mExynosDisplay->mType);
+ return;
+ }
- display_info.push_back(primary_display);
+ display_info.push_back(disp_info);
}
const std::string ExynosDisplayDrmInterfaceModule::GetPanelInfo(const std::string &sysfs_rel,