diff options
author | 2024-11-08 16:31:24 -0500 | |
---|---|---|
committer | 2024-12-02 17:31:13 -0500 | |
commit | ffca0adeddc2da58a709bfef4c3e5e1522a061a3 (patch) | |
tree | 0539bb705de8bce5f547936bfa3c35ea98131a55 | |
parent | 27cb4c815bf789dee511a884f68f22323057bf87 (diff) |
SF: Cache display port in DisplayIdentification on onHotplugConnect
In order to be able to remove direct dependencies on a DisplayId's int
value, we have to find alternatives for the API it provides. One such
piece of data is a display port, which is encoded directly in the ID int
value.
Cache the port as it is retrieved from HWC into DisplayIdentification so
it can be served later via alternative ISurfaceComposer APIs.
Bug: 374163881
Bug: 377307639
Flag: EXEMPT refactor
Test: libsurfaceflinger_unittest
Change-Id: If255418ed4047531417004c4a1fd710061d93685
-rw-r--r-- | libs/ui/DisplayIdentification.cpp | 1 | ||||
-rw-r--r-- | libs/ui/include/ui/DisplayIdentification.h | 1 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/libs/ui/DisplayIdentification.cpp b/libs/ui/DisplayIdentification.cpp index 8d6f74b605..c9f0761a01 100644 --- a/libs/ui/DisplayIdentification.cpp +++ b/libs/ui/DisplayIdentification.cpp @@ -417,6 +417,7 @@ std::optional<DisplayIdentificationInfo> parseDisplayIdentificationData( return DisplayIdentificationInfo{ .id = displayId, .name = std::string(edid->displayName), + .port = port, .deviceProductInfo = buildDeviceProductInfo(*edid), .preferredDetailedTimingDescriptor = edid->preferredDetailedTimingDescriptor, }; diff --git a/libs/ui/include/ui/DisplayIdentification.h b/libs/ui/include/ui/DisplayIdentification.h index cf67d7bf93..cdac2698dd 100644 --- a/libs/ui/include/ui/DisplayIdentification.h +++ b/libs/ui/include/ui/DisplayIdentification.h @@ -42,6 +42,7 @@ struct DetailedTimingDescriptor { struct DisplayIdentificationInfo { PhysicalDisplayId id; std::string name; + uint8_t port; std::optional<DeviceProductInfo> deviceProductInfo; std::optional<DetailedTimingDescriptor> preferredDetailedTimingDescriptor; }; diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 55ccdefa7a..721cfd31bb 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -1180,6 +1180,7 @@ std::optional<DisplayIdentificationInfo> HWComposer::onHotplugConnect( return DisplayIdentificationInfo{.id = PhysicalDisplayId::fromPort(port), .name = isPrimary ? "Primary display" : "Secondary display", + .port = port, .deviceProductInfo = std::nullopt}; }(); |