summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2023-12-08 13:14:16 -0800
committerXin Li <delphij@google.com>2023-12-08 13:14:16 -0800
commit44f34394257c781bc0213ff2f089cf06ed9eeddd (patch)
treea2acc0ea146ee79e9f4c3ea12fcdd83425ed9391
parent36e6499a8930d5ab3bce453575bfd284e61944e2 (diff)
parentaa291854af598bdde5d0cb31649c0f41b9465180 (diff)
downloadinterfaces-44f34394257c781bc0213ff2f089cf06ed9eeddd.tar.gz
Merge Android 14 QPR1
Merged-In: If8028bace8cf35ff7525405b31c1ac313f98fc24 Bug: 315507370 Change-Id: Ic0e7a3f26a3e3dfc5ea7c729d1f19031ae79d4ac
-rw-r--r--display/Android.bp8
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/.hash1
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HbmState.aidl40
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramCapability.aidl42
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramConfig.aidl40
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramErrorCode.aidl51
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramPos.aidl39
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramSamplePos.aidl39
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/IDisplay.aidl62
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/LbeState.aidl42
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl40
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Priority.aidl39
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Weight.aidl40
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl42
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl40
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramErrorCode.aidl4
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramSamplePos.aidl39
-rw-r--r--display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/IDisplay.aidl5
-rw-r--r--display/com/google/hardware/pixel/display/HistogramCapability.aidl54
-rw-r--r--display/com/google/hardware/pixel/display/HistogramConfig.aidl47
-rw-r--r--display/com/google/hardware/pixel/display/HistogramErrorCode.aidl4
-rw-r--r--display/com/google/hardware/pixel/display/HistogramSamplePos.aidl24
-rw-r--r--display/com/google/hardware/pixel/display/IDisplay.aidl90
23 files changed, 830 insertions, 2 deletions
diff --git a/display/Android.bp b/display/Android.bp
index 818e2b1..b146a54 100644
--- a/display/Android.bp
+++ b/display/Android.bp
@@ -83,7 +83,15 @@ aidl_interface {
"android.hardware.graphics.common-V4",
],
},
+ {
+ version: "9",
+ imports: [
+ "android.hardware.common-V2",
+ "android.hardware.graphics.common-V4",
+ ],
+ },
],
+ frozen: true,
}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/.hash b/display/aidl_api/com.google.hardware.pixel.display/9/.hash
new file mode 100644
index 0000000..1a8a156
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/.hash
@@ -0,0 +1 @@
+b0809d807564ed80c63a1bfa27f73b91116e293c
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HbmState.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HbmState.aidl
new file mode 100644
index 0000000..76af8b3
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HbmState.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum HbmState {
+ OFF = 0,
+ HDR = 1,
+ SUNLIGHT = 2,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramCapability.aidl
new file mode 100644
index 0000000..bbae60d
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramCapability.aidl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+parcelable HistogramCapability {
+ boolean supportMultiChannel;
+ int channelCount;
+ int fullResolutionWidth;
+ int fullResolutionHeight;
+ com.google.hardware.pixel.display.HistogramSamplePos[] supportSamplePosList;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramConfig.aidl
new file mode 100644
index 0000000..c72f349
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramConfig.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+parcelable HistogramConfig {
+ android.hardware.graphics.common.Rect roi;
+ com.google.hardware.pixel.display.Weight weights;
+ com.google.hardware.pixel.display.HistogramSamplePos samplePos;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramErrorCode.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramErrorCode.aidl
new file mode 100644
index 0000000..6c8bca7
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramErrorCode.aidl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum HistogramErrorCode {
+ NONE = 0,
+ BAD_ROI = 1,
+ BAD_WEIGHT = 2,
+ BAD_POSITION = 3,
+ BAD_PRIORITY = 4,
+ ENABLE_HIST_ERROR = 5,
+ DISABLE_HIST_ERROR = 6,
+ BAD_HIST_DATA = 7,
+ DRM_PLAYING = 8,
+ DISPLAY_POWEROFF = 9,
+ API_DEPRECATED = 10,
+ BAD_TOKEN = 11,
+ CONFIG_HIST_ERROR = 12,
+ NO_CHANNEL_AVAILABLE = 13,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramPos.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramPos.aidl
new file mode 100644
index 0000000..20b8160
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramPos.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum HistogramPos {
+ POST = 0,
+ PRE = 1,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramSamplePos.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramSamplePos.aidl
new file mode 100644
index 0000000..0acc055
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/HistogramSamplePos.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum HistogramSamplePos {
+ POST_POSTPROC = 0,
+ PRE_POSTPROC = 1,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/IDisplay.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/IDisplay.aidl
new file mode 100644
index 0000000..7a54c1c
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/IDisplay.aidl
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+interface IDisplay {
+ boolean isHbmSupported();
+ void setHbmState(in com.google.hardware.pixel.display.HbmState state);
+ com.google.hardware.pixel.display.HbmState getHbmState();
+ boolean isLbeSupported();
+ void setLbeState(in com.google.hardware.pixel.display.LbeState state);
+ void setLbeAmbientLight(in int ambientLux);
+ com.google.hardware.pixel.display.LbeState getLbeState();
+ boolean isLhbmSupported();
+ void setLhbmState(in boolean enabled);
+ boolean getLhbmState();
+ int setCompensationImageHandle(in android.hardware.common.NativeHandle native_handle, in String imageName);
+ int setMinIdleRefreshRate(in int fps);
+ int setRefreshRateThrottle(in int delayMs);
+ com.google.hardware.pixel.display.HistogramErrorCode histogramSample(in android.hardware.graphics.common.Rect roi, in com.google.hardware.pixel.display.Weight weight, in com.google.hardware.pixel.display.HistogramPos pos, in com.google.hardware.pixel.display.Priority pri, out char[] histogrambuffer);
+ com.google.hardware.pixel.display.PanelCalibrationStatus getPanelCalibrationStatus();
+ boolean isDbmSupported();
+ void setDbmState(in boolean enabled);
+ void setPeakRefreshRate(in int rate);
+ void setLowPowerMode(in boolean enabled);
+ boolean isOperationRateSupported();
+ com.google.hardware.pixel.display.HistogramCapability getHistogramCapability();
+ com.google.hardware.pixel.display.HistogramErrorCode registerHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig);
+ com.google.hardware.pixel.display.HistogramErrorCode queryHistogram(in IBinder token, out char[] histogramBuffer);
+ com.google.hardware.pixel.display.HistogramErrorCode reconfigHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig);
+ com.google.hardware.pixel.display.HistogramErrorCode unregisterHistogram(in IBinder token);
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/LbeState.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/LbeState.aidl
new file mode 100644
index 0000000..8c8b53e
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/LbeState.aidl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum LbeState {
+ OFF = 0,
+ NORMAL = 1,
+ HIGH_BRIGHTNESS = 2,
+ POWER_SAVE = 3,
+ HIGH_BRIGHTNESS_ENHANCE = 4,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl
new file mode 100644
index 0000000..55271d0
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum PanelCalibrationStatus {
+ ORIGINAL = 0,
+ GOLDEN = 1,
+ UNCALIBRATED = 2,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Priority.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Priority.aidl
new file mode 100644
index 0000000..2b2c957
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Priority.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum Priority {
+ NORMAL = 0,
+ PRIORITY = 1,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Weight.aidl b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Weight.aidl
new file mode 100644
index 0000000..e25da1e
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/9/com/google/hardware/pixel/display/Weight.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+parcelable Weight {
+ char weightR;
+ char weightG;
+ char weightB;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl
new file mode 100644
index 0000000..bbae60d
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+parcelable HistogramCapability {
+ boolean supportMultiChannel;
+ int channelCount;
+ int fullResolutionWidth;
+ int fullResolutionHeight;
+ com.google.hardware.pixel.display.HistogramSamplePos[] supportSamplePosList;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl
new file mode 100644
index 0000000..c72f349
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@VintfStability
+parcelable HistogramConfig {
+ android.hardware.graphics.common.Rect roi;
+ com.google.hardware.pixel.display.Weight weights;
+ com.google.hardware.pixel.display.HistogramSamplePos samplePos;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramErrorCode.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramErrorCode.aidl
index 5ace70d..6c8bca7 100644
--- a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramErrorCode.aidl
+++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramErrorCode.aidl
@@ -44,4 +44,8 @@ enum HistogramErrorCode {
BAD_HIST_DATA = 7,
DRM_PLAYING = 8,
DISPLAY_POWEROFF = 9,
+ API_DEPRECATED = 10,
+ BAD_TOKEN = 11,
+ CONFIG_HIST_ERROR = 12,
+ NO_CHANNEL_AVAILABLE = 13,
}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramSamplePos.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramSamplePos.aidl
new file mode 100644
index 0000000..0acc055
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramSamplePos.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file 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 com.google.hardware.pixel.display;
+@Backing(type="byte") @VintfStability
+enum HistogramSamplePos {
+ POST_POSTPROC = 0,
+ PRE_POSTPROC = 1,
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/IDisplay.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/IDisplay.aidl
index 5ffbd42..7a54c1c 100644
--- a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/IDisplay.aidl
+++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/IDisplay.aidl
@@ -54,4 +54,9 @@ interface IDisplay {
void setPeakRefreshRate(in int rate);
void setLowPowerMode(in boolean enabled);
boolean isOperationRateSupported();
+ com.google.hardware.pixel.display.HistogramCapability getHistogramCapability();
+ com.google.hardware.pixel.display.HistogramErrorCode registerHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig);
+ com.google.hardware.pixel.display.HistogramErrorCode queryHistogram(in IBinder token, out char[] histogramBuffer);
+ com.google.hardware.pixel.display.HistogramErrorCode reconfigHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig);
+ com.google.hardware.pixel.display.HistogramErrorCode unregisterHistogram(in IBinder token);
}
diff --git a/display/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/com/google/hardware/pixel/display/HistogramCapability.aidl
new file mode 100644
index 0000000..ea6e312
--- /dev/null
+++ b/display/com/google/hardware/pixel/display/HistogramCapability.aidl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.hardware.pixel.display;
+import com.google.hardware.pixel.display.HistogramSamplePos;
+
+@VintfStability
+parcelable HistogramCapability {
+ /**
+ * supportMultiChannel is true means the server supports multi channels
+ * histogram request, the client should use queryHistogram API. Otherwise,
+ * the client need to use the legacy histogramSample API.
+ */
+ boolean supportMultiChannel;
+
+ /**
+ * channelCount represents the number of available histogram channels for
+ * the client which would be less than the number of histogram hardware
+ * channels when driver reserves the histogram channel internally.
+ */
+ int channelCount;
+
+ /**
+ * fullResolutionWidth represents the x component of the full resolution.
+ * The roi should be calculated based on the full resolution.
+ * Constraints: HistogramConfig.roi.right <= fullResolutionWidth
+ */
+ int fullResolutionWidth;
+
+ /**
+ * fullResolutionHeight represents the y component of the full resolution.
+ * The roi should be calculated based on the full resolution.
+ * Constraints: HistogramConfig.roi.bottom <= fullResolutionHeight
+ */
+ int fullResolutionHeight;
+
+ /**
+ * supportSamplePosList lists the supported histogram sample position.
+ */
+ HistogramSamplePos[] supportSamplePosList;
+}
diff --git a/display/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/com/google/hardware/pixel/display/HistogramConfig.aidl
new file mode 100644
index 0000000..4798447
--- /dev/null
+++ b/display/com/google/hardware/pixel/display/HistogramConfig.aidl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.hardware.pixel.display;
+import com.google.hardware.pixel.display.HistogramSamplePos;
+import com.google.hardware.pixel.display.Weight;
+import android.hardware.graphics.common.Rect;
+
+@VintfStability
+parcelable HistogramConfig {
+ /**
+ * roi is the region of interest in the frames that should be sampled
+ * to collect the luma values. Rect is represented by the (int) coordinates
+ * of its 4 edges (left, top, right, bottom). The coordinates should be
+ * calculated based on the full resolution which is described by
+ * getHistogramCapability. Note that the right and bottom coordinates are
+ * exclusive.
+ */
+ Rect roi;
+
+ /**
+ * The weights for red (weight_r), green (weight_g) and blue (weight_b)
+ * colors. The weights are used in luma calculation formula:
+ * luma = weight_r * red + weight_g * green + weight_b * blue
+ * weight_r + weight_g + weight_b should be equal to 1024
+ */
+ Weight weights;
+
+ /**
+ * samplePos is the histogram sample position, could be PRE_POSTPROC
+ * (before post processing) or POST_POSTPROC (after post processing).
+ */
+ HistogramSamplePos samplePos;
+}
diff --git a/display/com/google/hardware/pixel/display/HistogramErrorCode.aidl b/display/com/google/hardware/pixel/display/HistogramErrorCode.aidl
index 9fad3a3..58e5dfa 100644
--- a/display/com/google/hardware/pixel/display/HistogramErrorCode.aidl
+++ b/display/com/google/hardware/pixel/display/HistogramErrorCode.aidl
@@ -29,4 +29,8 @@ enum HistogramErrorCode {
BAD_HIST_DATA = 7,
DRM_PLAYING = 8,
DISPLAY_POWEROFF = 9,
+ API_DEPRECATED = 10,
+ BAD_TOKEN = 11,
+ CONFIG_HIST_ERROR = 12,
+ NO_CHANNEL_AVAILABLE = 13,
}
diff --git a/display/com/google/hardware/pixel/display/HistogramSamplePos.aidl b/display/com/google/hardware/pixel/display/HistogramSamplePos.aidl
new file mode 100644
index 0000000..e2fa569
--- /dev/null
+++ b/display/com/google/hardware/pixel/display/HistogramSamplePos.aidl
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.hardware.pixel.display;
+
+@VintfStability
+@Backing(type="byte")
+enum HistogramSamplePos {
+ POST_POSTPROC = 0,
+ PRE_POSTPROC = 1,
+}
diff --git a/display/com/google/hardware/pixel/display/IDisplay.aidl b/display/com/google/hardware/pixel/display/IDisplay.aidl
index e34f779..c23a2b2 100644
--- a/display/com/google/hardware/pixel/display/IDisplay.aidl
+++ b/display/com/google/hardware/pixel/display/IDisplay.aidl
@@ -15,6 +15,8 @@
*/
package com.google.hardware.pixel.display;
+import com.google.hardware.pixel.display.HistogramCapability;
+import com.google.hardware.pixel.display.HistogramConfig;
import com.google.hardware.pixel.display.HistogramErrorCode;
import com.google.hardware.pixel.display.HbmState;
import com.google.hardware.pixel.display.LbeState;
@@ -155,13 +157,16 @@ interface IDisplay {
* BAD_WEIGHT = 2 when weight passed in is not in correct format
* BAD_POSITION = 3 when the histogram sampling position is incorrect
* BAD_PRIORITY = 4 when the priority input is not in correct format
- * ENABLE_HIST_ERROR = 5 when enable histgoram property error
- * DISABLE_HIST_ERROR = 6 when disable histgoram property error
+ * ENABLE_HIST_ERROR = 5 when enable histogram property error
+ * DISABLE_HIST_ERROR = 6 when disable histogram property error
* BAD_HIST_DATA = 7 when there is error to collect histogram data
* DRM_PLAYING = 8 when there is DRM content playing,
* for content protection, no histogram data sampled
* DISPLAY_POWEROFF = 9 when the display is power off,
* no histogram data is sampled
+ * API_DEPRECATED = 10 when the API is deprecated, should use the multi
+ * channel API instead (registerHistogram and
+ * queryHistogram)
*/
HistogramErrorCode histogramSample(in Rect roi, in Weight weight, in HistogramPos pos,
in Priority pri, out char[] histogrambuffer);
@@ -216,4 +221,85 @@ interface IDisplay {
* false if not supported.
*/
boolean isOperationRateSupported();
+
+ /**
+ * Return the histogram capability for the platform.
+ *
+ * @return HistogramCapability which describes the histogram capability for the platform.
+ */
+ HistogramCapability getHistogramCapability();
+
+ /**
+ * Register the histogram sampling configuration, and allocate a histogram hardware channel
+ * from the histogram server. The DPU hardware will continuously sample the histogram
+ * data. The histogram channel can be disabled (see unregisterHistogram) to save
+ * power consumption.
+ *
+ * @param token input from client, is the handle for the following histogram
+ * operations which would be used to identify the client and register
+ * a binderdied callback to release the histogram channel automatically
+ * when client crashes.
+ *
+ * @param histogramConfig input from client, is the histogram configuration.
+ *
+ * @return error NONE, upon success. Otherwise
+ * BAD_TOKEN, when the token passed in has error or already registered
+ * BAD_ROI, when roi passed in is not in correct format
+ * BAD_WEIGHT, when weight passed in is not in correct format
+ * BAD_POSITION, when the histogram sampling position is incorrect
+ * CONFIG_HIST_ERROR, when enable histogram property error
+ * NO_CHANNEL_AVAILABLE, when all of the histogram channels are in used
+ */
+ HistogramErrorCode registerHistogram(in IBinder token, in HistogramConfig histogramConfig);
+
+ /**
+ * Query the latest histogram data.
+ *
+ * @param token input from client, is the handle registered via registerHistogram
+ * which would be used to identify the client.
+ *
+ * @param histogramBuffer output from histogram server, is a 256 * 16 bits buffer to store the
+ * luma counts return by the histogram hardware.
+ *
+ * @return error NONE, upon success. Otherwise
+ * BAD_TOKEN, when the token passed in has error or not registered
+ * before
+ * DISPLAY_POWEROFF, when the display is power off
+ * BAD_HIST_DATA, when there is error to collect histogram data
+ * DRM_PLAYING, when there is secure content playing,
+ * for content protection, no histogram data sampled
+ */
+ HistogramErrorCode queryHistogram(in IBinder token, out char[] histogramBuffer);
+
+ /**
+ * change the histogram channel configuration. The DPU hardware will continuously sample the
+ * histogram data. The histogram channel can be disabled (see unregisterHistogram) to save
+ * power consumption.
+ *
+ * @param token input from client, is the handle registered via registerHistogram
+ * which would be used to identify the client.
+ *
+ * @param histogramConfig input from client, is the histogram configuration.
+ *
+ * @return error NONE, upon success. Otherwise
+ * BAD_TOKEN, when the token passed in has error or not registered
+ * before
+ * BAD_ROI, when roi passed in is not in correct format
+ * BAD_WEIGHT, when weight passed in is not in correct format
+ * BAD_POSITION, when the histogram sampling position is incorrect
+ * CONFIG_HIST_ERROR, when change histogram property error
+ */
+ HistogramErrorCode reconfigHistogram(in IBinder token, in HistogramConfig histogramConfig);
+
+ /**
+ * Disable the histogram channel to release the hardware resource and save power consumption.
+ *
+ * @param token input from client, is the handle registered via registerHistogram
+ * which would be used to identify the client.
+ *
+ * @return error NONE, upon success. Otherwise
+ * BAD_TOKEN, when the token passed in has error or not registered
+ * before
+ */
+ HistogramErrorCode unregisterHistogram(in IBinder token);
}