sdm: Implement getDisplayIdentificationData
* Implement call flow from client to display interface.
* Use display interface to query EDID blob from Connector information
and return to client alongside pre-established port information from
sde-drm during display creation.
* Create EDID blob for Null Display (QMAA) to represent a 1920x1080
60fps display with panel name "Null Display" and port corresponding to
either builtin or external, depending on DisplayNull class instantiated.
* Introduce kErrorDriverData as a display interface error to represent
situations in which expected data from the driver is missing.
Currently this applied to EDID blob for physical panels.
* Update UnregisterDisplay API to allow cleanup of token via sde-drm.
* Add support for EDID DRM Property and appropriate blob parsing into
the connector info for the display.
* Introduce new HW Port ID assignments to newly created displays based
on available encoders for the display's connector.
* Due to workaround on current chipset, userspace must inject a second DSI
encoder if one is not reported from the driver due to varying behavior
on whether single panel use case vs secondary panel use case reports the
second DSI encoder or not. This injection is required for HW Port ID
logic to match client requirements.
* Cleanup handling of DRMDisplayToken elements on Free.
Change-Id: I5661f7bc0a5a68cdffa0cad3fe2351baa647012c
CRs-Fixed: 2380873
28 files changed