From 4bd6cb01efd9dcecb26609c29b09cd9a6dd9b674 Mon Sep 17 00:00:00 2001 From: Rheygine Medel Date: Tue, 1 Dec 2020 14:43:32 -0800 Subject: [PATCH] display: Add IDisplayConfig Stable AIDL implementation This change adds the IDisplayConfig HAL implementation using AIDL interfaces. Change-Id: I5244d4d7764fd5128a2cb1021b73364d0179cece CRs-Fixed: 2871306 --- aidl/config/Android.bp | 20 + aidl/config/NOTICE | 26 + .../1/.hash | 1 + .../hardware/display/config/Attributes.aidl | 28 + .../display/config/DisplayPortType.aidl | 29 + .../hardware/display/config/DisplayType.aidl | 26 + .../display/config/DynRefreshRateOp.aidl | 25 + .../display/config/ExternalStatus.aidl | 26 + .../display/config/HDRCapsParams.aidl | 24 + .../display/config/IDisplayConfig.aidl | 70 +++ .../config/IDisplayConfigCallback.aidl | 24 + .../hardware/display/config/PowerMode.aidl | 25 + .../hardware/display/config/QsyncMode.aidl | 25 + .../qti/hardware/display/config/Rect.aidl | 25 + .../hardware/display/config/TUIEventType.aidl | 25 + .../hardware/display/config/Attributes.aidl | 28 + .../display/config/DisplayPortType.aidl | 29 + .../hardware/display/config/DisplayType.aidl | 26 + .../display/config/DynRefreshRateOp.aidl | 25 + .../display/config/ExternalStatus.aidl | 26 + .../display/config/HDRCapsParams.aidl | 24 + .../display/config/IDisplayConfig.aidl | 70 +++ .../config/IDisplayConfigCallback.aidl | 24 + .../hardware/display/config/PowerMode.aidl | 25 + .../hardware/display/config/QsyncMode.aidl | 25 + .../qti/hardware/display/config/Rect.aidl | 25 + .../hardware/display/config/TUIEventType.aidl | 25 + .../hardware/display/config/Attributes.aidl | 43 ++ .../display/config/DisplayPortType.aidl | 43 ++ .../hardware/display/config/DisplayType.aidl | 40 ++ .../display/config/DynRefreshRateOp.aidl | 38 ++ .../display/config/ExternalStatus.aidl | 40 ++ .../display/config/HDRCapsParams.aidl | 37 ++ .../display/config/IDisplayConfig.aidl | 517 ++++++++++++++++++ .../config/IDisplayConfigCallback.aidl | 60 ++ .../hardware/display/config/PowerMode.aidl | 39 ++ .../hardware/display/config/QsyncMode.aidl | 39 ++ .../qti/hardware/display/config/Rect.aidl | 38 ++ .../hardware/display/config/TUIEventType.aidl | 39 ++ 39 files changed, 1724 insertions(+) create mode 100644 aidl/config/Android.bp create mode 100644 aidl/config/NOTICE create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/.hash create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Attributes.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayPortType.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayType.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/ExternalStatus.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/HDRCapsParams.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfig.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/PowerMode.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/QsyncMode.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Rect.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/TUIEventType.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Attributes.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayPortType.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayType.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/ExternalStatus.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/HDRCapsParams.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfig.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/PowerMode.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/QsyncMode.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Rect.aidl create mode 100644 aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/TUIEventType.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/Attributes.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/DisplayPortType.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/DisplayType.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/ExternalStatus.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/HDRCapsParams.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/IDisplayConfig.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/PowerMode.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/QsyncMode.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/Rect.aidl create mode 100644 aidl/config/vendor/qti/hardware/display/config/TUIEventType.aidl diff --git a/aidl/config/Android.bp b/aidl/config/Android.bp new file mode 100644 index 00000000..5e6f66cc --- /dev/null +++ b/aidl/config/Android.bp @@ -0,0 +1,20 @@ +aidl_interface { + name: "vendor.qti.hardware.display.config", + vendor_available: true, + srcs: [ + "vendor/qti/hardware/display/config/*.aidl", + ], + stability: "vintf", + imports: [ + "android.hardware.common", + ], + backend: { + java: { + enabled: false, + }, + cpp: { + enabled: false, + }, + }, + versions: ["1"], +} diff --git a/aidl/config/NOTICE b/aidl/config/NOTICE new file mode 100644 index 00000000..a81e717b --- /dev/null +++ b/aidl/config/NOTICE @@ -0,0 +1,26 @@ +Copyright (c) 2021 The Linux Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/.hash b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/.hash new file mode 100644 index 00000000..137e6fb8 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/.hash @@ -0,0 +1 @@ +85e19ab4932644825750604ee629a47aec7589fd diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Attributes.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Attributes.aidl new file mode 100644 index 00000000..8e4f6d13 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Attributes.aidl @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable Attributes { + int vsyncPeriod; + int xRes; + int yRes; + float xDpi; + float yDpi; + vendor.qti.hardware.display.config.DisplayPortType panelType; + boolean isYuv; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayPortType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayPortType.aidl new file mode 100644 index 00000000..7ce22f02 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayPortType.aidl @@ -0,0 +1,29 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DisplayPortType { + INVALID = 0, + DEFAULT = 1, + DSI = 2, + DTV = 3, + WRITEBACK = 4, + LVDS = 5, + EDP = 6, + DP = 7, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayType.aidl new file mode 100644 index 00000000..b624d9f3 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DisplayType.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DisplayType { + INVALID = 0, + PRIMARY = 1, + EXTERNAL = 2, + VIRTUAL = 3, + BUILTIN2 = 4, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl new file mode 100644 index 00000000..6b036290 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DynRefreshRateOp { + INVALID = 0, + DISABLE_METADATA = 1, + ENABLE_METADATA = 2, + SET_BINDER = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/ExternalStatus.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/ExternalStatus.aidl new file mode 100644 index 00000000..d5dea557 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/ExternalStatus.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum ExternalStatus { + INVALID = 0, + OFFLINE = 1, + ONLINE = 2, + PAUSE = 3, + RESUME = 4, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/HDRCapsParams.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/HDRCapsParams.aidl new file mode 100644 index 00000000..41f755d0 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/HDRCapsParams.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable HDRCapsParams { + int[] supportedHdrTypes; + float maxAvgLuminance; + float minLuminance; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfig.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfig.aidl new file mode 100644 index 00000000..864ce3d2 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfig.aidl @@ -0,0 +1,70 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +interface IDisplayConfig { + boolean isDisplayConnected(in vendor.qti.hardware.display.config.DisplayType dpy); + void setDisplayStatus(in vendor.qti.hardware.display.config.DisplayType dpy, in vendor.qti.hardware.display.config.ExternalStatus status); + void configureDynRefreshRate(in vendor.qti.hardware.display.config.DynRefreshRateOp op, in int refrestRate); + int getConfigCount(in vendor.qti.hardware.display.config.DisplayType dpy); + int getActiveConfig(in vendor.qti.hardware.display.config.DisplayType dpy); + void setActiveConfig(in vendor.qti.hardware.display.config.DisplayType dpy, in int config); + vendor.qti.hardware.display.config.Attributes getDisplayAttributes(in int configIndex, in vendor.qti.hardware.display.config.DisplayType dpy); + void setPanelBrightness(in int level); + int getPanelBrightness(); + void minHdcpEncryptionLevelChanged(in vendor.qti.hardware.display.config.DisplayType dpy, in int minEncLevel); + void refreshScreen(); + void controlPartialUpdate(in vendor.qti.hardware.display.config.DisplayType dpy, in boolean enable); + void toggleScreenUpdate(in boolean on); + void setIdleTimeout(in int value); + vendor.qti.hardware.display.config.HDRCapsParams getHDRCapabilities(in vendor.qti.hardware.display.config.DisplayType dpy); + void setCameraLaunchStatus(in int on); + boolean displayBWTransactionPending(); + void setDisplayAnimating(in long displayId, in boolean animating); + void controlIdlePowerCollapse(in boolean enable, in boolean synchronous); + boolean getWriteBackCapabilities(); + void setDisplayDppsAdROI(in int displayId, in int hStart, in int hEnd, in int vStart, in int vEnd, in int factorIn, in int factorOut); + void updateVSyncSourceOnPowerModeOff(); + void updateVSyncSourceOnPowerModeDoze(); + void setPowerMode(in int dispId, in vendor.qti.hardware.display.config.PowerMode powerMode); + boolean isPowerModeOverrideSupported(in int dispId); + boolean isHDRSupported(in int dispId); + boolean isWCGSupported(in int dispId); + void setLayerAsMask(in int dispId, in long layerId); + String getDebugProperty(in String propName); + vendor.qti.hardware.display.config.Attributes getActiveBuiltinDisplayAttributes(); + void setPanelLuminanceAttributes(in int dispId, in float minLum, in float maxLum); + boolean isBuiltInDisplay(in int dispId); + boolean isAsyncVDSCreationSupported(); + void createVirtualDisplay(in int width, in int height, in int format); + long[] getSupportedDSIBitClks(in int dispId); + long getDSIClk(in int dispId); + void setDSIClk(in int dispId, in long bitClk); + void setCWBOutputBuffer(in vendor.qti.hardware.display.config.IDisplayConfigCallback callback, in int dispId, in vendor.qti.hardware.display.config.Rect rect, in boolean postProcessed, in android.hardware.common.NativeHandle buffer); + void setQsyncMode(in int dispId, in vendor.qti.hardware.display.config.QsyncMode mode); + boolean isSmartPanelConfig(in int dispId, in int configId); + boolean isRotatorSupportedFormat(in int halFormat, in boolean ubwc); + void controlQsyncCallback(in boolean enable); + void sendTUIEvent(in vendor.qti.hardware.display.config.DisplayType dpy, in vendor.qti.hardware.display.config.TUIEventType eventType); + int getDisplayHwId(in int dispId); + int[] getSupportedDisplayRefreshRates(in vendor.qti.hardware.display.config.DisplayType dpy); + boolean isRCSupported(in int dispId); + void controlIdleStatusCallback(in boolean enable); + boolean isSupportedConfigSwitch(in int dispId, in int config); + vendor.qti.hardware.display.config.DisplayType getDisplayType(in long physicalDispId); +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl new file mode 100644 index 00000000..b479cb4e --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +interface IDisplayConfigCallback { + oneway void notifyCWBBufferDone(in int error, in android.hardware.common.NativeHandle buffer); + oneway void notifyQsyncChange(in boolean qsyncEnabled, in int refreshRate, in int qsyncRefreshRate); + oneway void notifyIdleStatus(in boolean isIdle); +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/PowerMode.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/PowerMode.aidl new file mode 100644 index 00000000..4961fa44 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/PowerMode.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum PowerMode { + OFF = 0, + DOZE = 1, + ON = 2, + DOZE_SUSPEND = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/QsyncMode.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/QsyncMode.aidl new file mode 100644 index 00000000..32de0cf3 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/QsyncMode.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum QsyncMode { + NONE = 0, + WAIT_FOR_FENCES_ONE_FRAME = 1, + WAIT_FOR_FENCES_EACH_FRAME = 2, + WAIT_FOR_COMMIT_EACH_FRAME = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Rect.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Rect.aidl new file mode 100644 index 00000000..989c191e --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/Rect.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable Rect { + int left; + int top; + int right; + int bottom; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/TUIEventType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/TUIEventType.aidl new file mode 100644 index 00000000..1fdf52ee --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/1/vendor/qti/hardware/display/config/TUIEventType.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum TUIEventType { + NONE = 0, + PREPARE_TUI_TRANSITION = 1, + START_TUI_TRANSITION = 2, + END_TUI_TRANSITION = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Attributes.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Attributes.aidl new file mode 100644 index 00000000..8e4f6d13 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Attributes.aidl @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable Attributes { + int vsyncPeriod; + int xRes; + int yRes; + float xDpi; + float yDpi; + vendor.qti.hardware.display.config.DisplayPortType panelType; + boolean isYuv; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayPortType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayPortType.aidl new file mode 100644 index 00000000..7ce22f02 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayPortType.aidl @@ -0,0 +1,29 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DisplayPortType { + INVALID = 0, + DEFAULT = 1, + DSI = 2, + DTV = 3, + WRITEBACK = 4, + LVDS = 5, + EDP = 6, + DP = 7, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayType.aidl new file mode 100644 index 00000000..b624d9f3 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DisplayType.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DisplayType { + INVALID = 0, + PRIMARY = 1, + EXTERNAL = 2, + VIRTUAL = 3, + BUILTIN2 = 4, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl new file mode 100644 index 00000000..6b036290 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum DynRefreshRateOp { + INVALID = 0, + DISABLE_METADATA = 1, + ENABLE_METADATA = 2, + SET_BINDER = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/ExternalStatus.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/ExternalStatus.aidl new file mode 100644 index 00000000..d5dea557 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/ExternalStatus.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum ExternalStatus { + INVALID = 0, + OFFLINE = 1, + ONLINE = 2, + PAUSE = 3, + RESUME = 4, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/HDRCapsParams.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/HDRCapsParams.aidl new file mode 100644 index 00000000..41f755d0 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/HDRCapsParams.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable HDRCapsParams { + int[] supportedHdrTypes; + float maxAvgLuminance; + float minLuminance; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfig.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfig.aidl new file mode 100644 index 00000000..864ce3d2 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfig.aidl @@ -0,0 +1,70 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +interface IDisplayConfig { + boolean isDisplayConnected(in vendor.qti.hardware.display.config.DisplayType dpy); + void setDisplayStatus(in vendor.qti.hardware.display.config.DisplayType dpy, in vendor.qti.hardware.display.config.ExternalStatus status); + void configureDynRefreshRate(in vendor.qti.hardware.display.config.DynRefreshRateOp op, in int refrestRate); + int getConfigCount(in vendor.qti.hardware.display.config.DisplayType dpy); + int getActiveConfig(in vendor.qti.hardware.display.config.DisplayType dpy); + void setActiveConfig(in vendor.qti.hardware.display.config.DisplayType dpy, in int config); + vendor.qti.hardware.display.config.Attributes getDisplayAttributes(in int configIndex, in vendor.qti.hardware.display.config.DisplayType dpy); + void setPanelBrightness(in int level); + int getPanelBrightness(); + void minHdcpEncryptionLevelChanged(in vendor.qti.hardware.display.config.DisplayType dpy, in int minEncLevel); + void refreshScreen(); + void controlPartialUpdate(in vendor.qti.hardware.display.config.DisplayType dpy, in boolean enable); + void toggleScreenUpdate(in boolean on); + void setIdleTimeout(in int value); + vendor.qti.hardware.display.config.HDRCapsParams getHDRCapabilities(in vendor.qti.hardware.display.config.DisplayType dpy); + void setCameraLaunchStatus(in int on); + boolean displayBWTransactionPending(); + void setDisplayAnimating(in long displayId, in boolean animating); + void controlIdlePowerCollapse(in boolean enable, in boolean synchronous); + boolean getWriteBackCapabilities(); + void setDisplayDppsAdROI(in int displayId, in int hStart, in int hEnd, in int vStart, in int vEnd, in int factorIn, in int factorOut); + void updateVSyncSourceOnPowerModeOff(); + void updateVSyncSourceOnPowerModeDoze(); + void setPowerMode(in int dispId, in vendor.qti.hardware.display.config.PowerMode powerMode); + boolean isPowerModeOverrideSupported(in int dispId); + boolean isHDRSupported(in int dispId); + boolean isWCGSupported(in int dispId); + void setLayerAsMask(in int dispId, in long layerId); + String getDebugProperty(in String propName); + vendor.qti.hardware.display.config.Attributes getActiveBuiltinDisplayAttributes(); + void setPanelLuminanceAttributes(in int dispId, in float minLum, in float maxLum); + boolean isBuiltInDisplay(in int dispId); + boolean isAsyncVDSCreationSupported(); + void createVirtualDisplay(in int width, in int height, in int format); + long[] getSupportedDSIBitClks(in int dispId); + long getDSIClk(in int dispId); + void setDSIClk(in int dispId, in long bitClk); + void setCWBOutputBuffer(in vendor.qti.hardware.display.config.IDisplayConfigCallback callback, in int dispId, in vendor.qti.hardware.display.config.Rect rect, in boolean postProcessed, in android.hardware.common.NativeHandle buffer); + void setQsyncMode(in int dispId, in vendor.qti.hardware.display.config.QsyncMode mode); + boolean isSmartPanelConfig(in int dispId, in int configId); + boolean isRotatorSupportedFormat(in int halFormat, in boolean ubwc); + void controlQsyncCallback(in boolean enable); + void sendTUIEvent(in vendor.qti.hardware.display.config.DisplayType dpy, in vendor.qti.hardware.display.config.TUIEventType eventType); + int getDisplayHwId(in int dispId); + int[] getSupportedDisplayRefreshRates(in vendor.qti.hardware.display.config.DisplayType dpy); + boolean isRCSupported(in int dispId); + void controlIdleStatusCallback(in boolean enable); + boolean isSupportedConfigSwitch(in int dispId, in int config); + vendor.qti.hardware.display.config.DisplayType getDisplayType(in long physicalDispId); +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl new file mode 100644 index 00000000..b479cb4e --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +interface IDisplayConfigCallback { + oneway void notifyCWBBufferDone(in int error, in android.hardware.common.NativeHandle buffer); + oneway void notifyQsyncChange(in boolean qsyncEnabled, in int refreshRate, in int qsyncRefreshRate); + oneway void notifyIdleStatus(in boolean isIdle); +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/PowerMode.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/PowerMode.aidl new file mode 100644 index 00000000..4961fa44 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/PowerMode.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum PowerMode { + OFF = 0, + DOZE = 1, + ON = 2, + DOZE_SUSPEND = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/QsyncMode.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/QsyncMode.aidl new file mode 100644 index 00000000..32de0cf3 --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/QsyncMode.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum QsyncMode { + NONE = 0, + WAIT_FOR_FENCES_ONE_FRAME = 1, + WAIT_FOR_FENCES_EACH_FRAME = 2, + WAIT_FOR_COMMIT_EACH_FRAME = 3, +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Rect.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Rect.aidl new file mode 100644 index 00000000..989c191e --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/Rect.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@VintfStability +parcelable Rect { + int left; + int top; + int right; + int bottom; +} diff --git a/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/TUIEventType.aidl b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/TUIEventType.aidl new file mode 100644 index 00000000..1fdf52ee --- /dev/null +++ b/aidl/config/aidl_api/vendor.qti.hardware.display.config/current/vendor/qti/hardware/display/config/TUIEventType.aidl @@ -0,0 +1,25 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL interface (or parcelable). Do not try to +// edit this file. It looks like you are doing that because you have modified +// an AIDL interface in a backward-incompatible way, e.g., deleting a function +// from an interface or a field from a parcelable and it broke the build. That +// breakage is intended. +// +// You must not make a backward incompatible changes to the AIDL files built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package vendor.qti.hardware.display.config; +@Backing(type="int") @VintfStability +enum TUIEventType { + NONE = 0, + PREPARE_TUI_TRANSITION = 1, + START_TUI_TRANSITION = 2, + END_TUI_TRANSITION = 3, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/Attributes.aidl b/aidl/config/vendor/qti/hardware/display/config/Attributes.aidl new file mode 100644 index 00000000..5435d914 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/Attributes.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +import vendor.qti.hardware.display.config.DisplayPortType; + +@VintfStability +parcelable Attributes { + int vsyncPeriod; + int xRes; + int yRes; + float xDpi; + float yDpi; + DisplayPortType panelType; + boolean isYuv; +} diff --git a/aidl/config/vendor/qti/hardware/display/config/DisplayPortType.aidl b/aidl/config/vendor/qti/hardware/display/config/DisplayPortType.aidl new file mode 100644 index 00000000..ea1b7e4c --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/DisplayPortType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum DisplayPortType { + INVALID = 0, + DEFAULT = 1, + DSI = 2, + DTV = 3, + WRITEBACK = 4, + LVDS = 5, + EDP = 6, + DP = 7 +} diff --git a/aidl/config/vendor/qti/hardware/display/config/DisplayType.aidl b/aidl/config/vendor/qti/hardware/display/config/DisplayType.aidl new file mode 100644 index 00000000..c0ef2979 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/DisplayType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum DisplayType { + INVALID = 0, + PRIMARY = 1, + EXTERNAL = 2, + VIRTUAL = 3, + BUILTIN2 = 4, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl b/aidl/config/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl new file mode 100644 index 00000000..e9d7bc93 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/DynRefreshRateOp.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum DynRefreshRateOp { + INVALID = 0, + DISABLE_METADATA = 1, + ENABLE_METADATA = 2, + SET_BINDER = 3, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/ExternalStatus.aidl b/aidl/config/vendor/qti/hardware/display/config/ExternalStatus.aidl new file mode 100644 index 00000000..5561df17 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/ExternalStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum ExternalStatus { + INVALID = 0, + OFFLINE = 1, + ONLINE = 2, + PAUSE = 3, + RESUME = 4, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/HDRCapsParams.aidl b/aidl/config/vendor/qti/hardware/display/config/HDRCapsParams.aidl new file mode 100644 index 00000000..2ee6d83e --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/HDRCapsParams.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +parcelable HDRCapsParams { + int[] supportedHdrTypes; + float maxAvgLuminance; + float minLuminance; +} diff --git a/aidl/config/vendor/qti/hardware/display/config/IDisplayConfig.aidl b/aidl/config/vendor/qti/hardware/display/config/IDisplayConfig.aidl new file mode 100644 index 00000000..239f25a4 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/IDisplayConfig.aidl @@ -0,0 +1,517 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +import android.hardware.common.NativeHandle; + +import vendor.qti.hardware.display.config.Attributes; +import vendor.qti.hardware.display.config.DisplayType; +import vendor.qti.hardware.display.config.DynRefreshRateOp; +import vendor.qti.hardware.display.config.ExternalStatus; +import vendor.qti.hardware.display.config.HDRCapsParams; +import vendor.qti.hardware.display.config.IDisplayConfigCallback; +import vendor.qti.hardware.display.config.PowerMode; +import vendor.qti.hardware.display.config.QsyncMode; +import vendor.qti.hardware.display.config.Rect; +import vendor.qti.hardware.display.config.TUIEventType; + +@VintfStability +interface IDisplayConfig { + /* + * Query whether a given display type is connected. + * + * @param dpy display type + * + * @return true when connected, false when disconnected + */ + boolean isDisplayConnected(in DisplayType dpy); + + /* + * Set the secondary display status (pause/resume/offline) etc. + * + * @param dpy display type + * @param status next status to be set + * + * @return error is NONE upon success + */ + void setDisplayStatus(in DisplayType dpy, in ExternalStatus status); + + /* + * Enable/Disable/Set refresh rate dynamically. + * + * @param op operation code defined in DisplayDynRefreshRateOp + * @param refreshRate refresh rate value + * + * @return error is NONE upon success + */ + void configureDynRefreshRate(in DynRefreshRateOp op, in int refrestRate); + + /* + * Query the number of configurations a given display can support. + * + * @param dpy display type + * + * @return number of configurations + */ + int getConfigCount(in DisplayType dpy); + + /* + * Query the config index of a given display type. + * + * @param[in] dpy display type + * + * @return config index of the display type + */ + int getActiveConfig(in DisplayType dpy); + + /* + * Set a new display configuration pointed by the index. + * + * @param dpy display type + * @param config config index + * + * @return error is NONE upon success + */ + void setActiveConfig(in DisplayType dpy, in int config); + + /* + * Query the display attributes of the specified config index. + * + * @param configIndex config index + * @param dpy display type + * + * @return attributes display attributes + */ + Attributes getDisplayAttributes(in int configIndex, in DisplayType dpy); + + /* + * Set the panel brightness of the primary display. + * + * @param level brightness level + * + * @return error is NONE upon success + */ + void setPanelBrightness(in int level); + + /* + * Query the panel brightness of the primary display. + * + * @return level brightness level + */ + int getPanelBrightness(); + + /* + * Indicates display about a change in minimum encryption level. + * + * @param dpy display type + * @param minEncLevel encryption level + * + * @return error is NONE upon success + */ + void minHdcpEncryptionLevelChanged (in DisplayType dpy, in int minEncLevel); + + /* + * Requests display to recompose and invalidate the display pipeline. + * + * @return error is NONE upon success + */ + void refreshScreen(); + + /* + * Enable/Disable partial update. + * + * @param dpy display type + * @param enable enable/disable + * + * @return error is NONE upon success + */ + void controlPartialUpdate(in DisplayType dpy, in boolean enable); + + /* + * Toggle screen update. + * + * @param on if true, pause display and drop incoming draw cycles + * + * @return error is NONE upon success + */ + void toggleScreenUpdate(in boolean on); + + /* + * Set idle timeout value for video mode panels. + * + * @param value idle timeout value + * + * @return error is NONE upon success + */ + void setIdleTimeout(in int value); + + /* + * Query the HDR capabilities of a given display type. + * + * @param dpy display type. + * + * @return HDR capabilities + */ + HDRCapsParams getHDRCapabilities(in DisplayType dpy); + + /* + * Set the camera application's status (start/stop). + * + * @param on if true, camera is started + * + * @return error is NONE upon success + */ + void setCameraLaunchStatus(in int on); + + /* + * Query the bandwidth transaction status. + * + * @return true if transaction is still pending + */ + boolean displayBWTransactionPending(); + + /* + * Set display animating property. + * + * @param displayId display Id + * @param animating if true, the display is animating + * + * @return error is NONE upon success + */ + void setDisplayAnimating(in long displayId, in boolean animating); + + /* + * Enable/disable idle power collapse. + * + * @param enable enable/disable + * @param synchronous commit + * + * @return error is NONE upon success + */ + void controlIdlePowerCollapse(in boolean enable, in boolean synchronous); + + /* + * Query whether UBWC writeback is supported. + * + * @return true if supported, false if not supported + */ + boolean getWriteBackCapabilities(); + + /* + * Set the region of interest of display dpps ad4 + * + * @param display_id ID of this display + * @param hStart start in hotizontal direction + * @param hEnd end in hotizontal direction + * @param vStart start in vertical direction + * @param vEnd end in vertical direction + * @param factorIn the strength factor of inside ROI region + * @param factorOut the strength factor of outside ROI region + * + * @return error is NONE upon success + */ + void setDisplayDppsAdROI(in int displayId, in int hStart, in int hEnd, in int vStart, + in int vEnd, in int factorIn, in int factorOut); + + /* + * Update vsync source to next active display upon the power state + * change to off. + * + * @return error is NONE upon success + */ + void updateVSyncSourceOnPowerModeOff(); + + /* + * Update vsync source to next active display upon the power state + * change to doze. + * + * @return error is NONE upon success + */ + void updateVSyncSourceOnPowerModeDoze(); + + /* + * Sets new power mode on the specificied display. + * + * @param dispId display identifier used between client & service + * @param powerMode new power mode + * + * @return error is NONE upon success + */ + void setPowerMode(in int dispId, in PowerMode powerMode); + + /* + * Query if power mode override is supported by underlying implementation + * for the specified display. + * + * @param dispId display identifier used between client & service + * + * @return true if supported, false if not supported + */ + boolean isPowerModeOverrideSupported(in int dispId); + + /* + * Query if hdr is supported by the underlying implementation for the specified display. + * + * @param dispId display identifier used between client & service + * + * @return true if supported, false if not supported + */ + boolean isHDRSupported(in int dispId); + + /* + * Query if wide color gamut is supported by the underlying implementation + * for the specified display. + * + * @param dispId display identifier used between client & service + * + * @return true if supported, false if not supported + */ + boolean isWCGSupported(in int dispId); + + /* + * Set layer as a mask type (e.g. round corner) identified by the layer id. + * + * @param dispId display identifier used between client & service + * @param layerId layer id used for communication with hwc + * + * @return error is NONE upon success + */ + void setLayerAsMask(in int dispId, in long layerId); + + /* + * Query the value corresponding to the specified property string from hwc. + * + * @param propName name of the property + * + * @return value corresponding to the property + */ + String getDebugProperty(in String propName); + + /* + * Query the attributes for the active builtin display. If all + * builtin displays are active, it returns primary display attributes. + * + * @return active display attributes + */ + Attributes getActiveBuiltinDisplayAttributes(); + + /* + * Set the min and max luminance attributes required for dynamic + * tonemapping of external device. + * + * @param dispId display identifier used between client & service + * @param minLum min luminance supported by external device + * @param maxLum max luminance supported by external device + * + * @return error is NONE upon success + */ + void setPanelLuminanceAttributes(in int dispId, in float minLum, in float maxLum); + + /* + * Query if the underlying display is of Built-In Type. + * + * @param dispId display identifier used between client & service + * + * @return true if display is of Built-In type + */ + boolean isBuiltInDisplay(in int dispId); + + /* + * Query if asynchronous Virtual Display Creation is supported + * + * @return true if async Virtual display creation is supported + */ + boolean isAsyncVDSCreationSupported(); + + /* + * Creates Virtual Display based on width, height, format parameters. + * + * @param width Width of the virtual display + * @param height Height of the virtual display + * @param format Pixel format of the virtual display + * + * @return error is NONE upon success + */ + void createVirtualDisplay(in int width, in int height, in int format); + + /* + * Query the supported bit clock values of a given display ID. + * + * @param dispId display id + * + * @return vector of bit clock values + */ + long[] getSupportedDSIBitClks(in int dispId); + + /* + * Query the current bit clock value of a given display ID. + * + * @param dispId display id. + * + * @return bit clock value + */ + long getDSIClk(in int dispId); + + /* + * Set the bit clock value of a given display ID. + * + * @param dispId display id + * @param bitClk desired bit clock value + * + * @return error is NONE upon success + */ + void setDSIClk(in int dispId, in long bitClk); + + /* + * Set the output buffer to be filled with the contents of the next + * composition performed for this display. Client can specify cropping + * rectangle for the partial concurrent writeback. + * Buffer must be ready for writeback before this API is called. + * If hardware protected content is displayed in next composition cycle, + * CWB output buffer will be returned as failure in callback and without + * any change in buffer. + * + * @param dispId display id where concurrent writeback shall be captured + * @param rect cropping rectangle which shall be applied on blended output + * @param postProcessed whether to capture post processed or mixer output + * @param buffer buffer where concurrent writeback output shall be written + * + * @return error is NONE upon success + */ + void setCWBOutputBuffer(in IDisplayConfigCallback callback, in int dispId, in Rect rect, + in boolean postProcessed, in NativeHandle buffer); + + /* + * Set the desired qsync mode which will ideally take effect from next + * composition cycle. Mode change may take longer than one cycle if there + * is a conflict with current operation mode. + * + * @param dispId display id + * @param mode desired qsync mode + * + * @return error is NONE upon success + */ + void setQsyncMode(in int dispId, in QsyncMode mode); + + /* + * Query if the specified display config has smart panel. + * + * @param dispId display Id + * @param configId display config index + * + * @return true if the DisplayConfig has Smart Panel + */ + boolean isSmartPanelConfig(in int dispId, in int configId); + + /* + * Query if the given format is supported by rotator. + * + * @param format pass HAL_PIXEL_FORMAT for the validation + * @param ubwc true if the given format is ubwc format otherwise false + * + * @return true if supported or false + */ + boolean isRotatorSupportedFormat(in int halFormat, in boolean ubwc); + + /* + * Enable/Display qsync callback. + * + * @param enable true if enabling qsync callback + * + * @return error is NONE upon success + */ + void controlQsyncCallback(in boolean enable); + + /* + * Notify TUI transition events to HW Composer. + * + * @param dpy display type + * @param eventType TUI Event Type + * + * @return error is NONE upon success + */ + void sendTUIEvent(in DisplayType dpy, in TUIEventType eventType); + + /* + * Query the display HW Id of a given display from HWC HAL + * + * @param dispId display Id + * + * @return display HW ID + */ + int getDisplayHwId(in int dispId); + + /* + * Query the supported refresh rates from Display HAL. The API would return a vector of + * supported fps in the current config group. + * + * @param dpy display type + * + * @return supported refresh rates + */ + int[] getSupportedDisplayRefreshRates(in DisplayType dpy); + + /* + * Query if the rounded corner feature is supported. + * + * @param dispId display Id + * + * @return true if supported, false otherwise + */ + boolean isRCSupported(in int dispId); + + /* + * Control the idle status callback. + * + * @param enable true if idle callback is enabled + * + * @return error is NONE upon success + */ + void controlIdleStatusCallback(in boolean enable); + + /* + * Query if the config switch is supported on the display. + * + * @param dispId display ID + * @param config config bit mask + * + * @return true if supported, false otherwise + */ + boolean isSupportedConfigSwitch(in int dispId, in int config); + + /* + * Query the display type information for a given physical display id. + * + * @param physicalDispId physical display ID + * + * @return display type + */ + DisplayType getDisplayType(in long physicalDispId); +} diff --git a/aidl/config/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl b/aidl/config/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl new file mode 100644 index 00000000..1d94b801 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/IDisplayConfigCallback.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +import android.hardware.common.NativeHandle; + +@VintfStability +interface IDisplayConfigCallback { + /* + * Send notification when concurrent writeback process completes. + * + * @param error result of the CWB process + * @param buffer buffer for concurrent writeback + */ + oneway void notifyCWBBufferDone(in int error, in NativeHandle buffer); + + /* + * Send notification when there are changes on the Qsync. + * + * @param qsyncEnabled Qsync status + * @param refreshRate refresh rate + * @param qsyncRefreshRate Qsync refresh rate + */ + oneway void notifyQsyncChange(in boolean qsyncEnabled, in int refreshRate, + in int qsyncRefreshRate); + + /* + * Send notification whether the device is in idle state. + * + * @param isIdle idle status + */ + oneway void notifyIdleStatus(in boolean isIdle); +} diff --git a/aidl/config/vendor/qti/hardware/display/config/PowerMode.aidl b/aidl/config/vendor/qti/hardware/display/config/PowerMode.aidl new file mode 100644 index 00000000..0551fdbf --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/PowerMode.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum PowerMode { + OFF = 0, + DOZE = 1, + ON = 2, + DOZE_SUSPEND = 3, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/QsyncMode.aidl b/aidl/config/vendor/qti/hardware/display/config/QsyncMode.aidl new file mode 100644 index 00000000..1d3e324a --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/QsyncMode.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum QsyncMode { + NONE = 0, + WAIT_FOR_FENCES_ONE_FRAME = 1, + WAIT_FOR_FENCES_EACH_FRAME = 2, + WAIT_FOR_COMMIT_EACH_FRAME = 3, +} diff --git a/aidl/config/vendor/qti/hardware/display/config/Rect.aidl b/aidl/config/vendor/qti/hardware/display/config/Rect.aidl new file mode 100644 index 00000000..5ca3a74d --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/Rect.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +parcelable Rect { + int left; + int top; + int right; + int bottom; +} diff --git a/aidl/config/vendor/qti/hardware/display/config/TUIEventType.aidl b/aidl/config/vendor/qti/hardware/display/config/TUIEventType.aidl new file mode 100644 index 00000000..a3f404a1 --- /dev/null +++ b/aidl/config/vendor/qti/hardware/display/config/TUIEventType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package vendor.qti.hardware.display.config; + +@VintfStability +@Backing(type="int") +enum TUIEventType { + NONE = 0, + PREPARE_TUI_TRANSITION = 1, + START_TUI_TRANSITION = 2, + END_TUI_TRANSITION = 3, +}