Merge "Update pixel-display V10 interface" into main
diff --git a/display/Android.bp b/display/Android.bp
index 23ca30a..31542e9 100644
--- a/display/Android.bp
+++ b/display/Android.bp
@@ -90,6 +90,13 @@
                 "android.hardware.graphics.common-V5",
             ],
         },
+        {
+            version: "10",
+            imports: [
+                "android.hardware.common-V2",
+                "android.hardware.graphics.common-V5",
+            ],
+        },
 
     ],
     frozen: true,
diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/.hash b/display/aidl_api/com.google.hardware.pixel.display/10/.hash
new file mode 100644
index 0000000..fd6bc86
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/10/.hash
@@ -0,0 +1 @@
+baba07b678d5de541a70f3c4b7b3c03bd78d5d3a
diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HbmState.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramCapability.aidl
new file mode 100644
index 0000000..bf4a34c
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramCapability.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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;
+  boolean supportBlockingRoi;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.aidl
new file mode 100644
index 0000000..a5fe1d4
--- /dev/null
+++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.aidl
@@ -0,0 +1,41 @@
+/*
+ * 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;
+  @nullable android.hardware.graphics.common.Rect blockingRoi;
+}
diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramErrorCode.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/HistogramPos.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/HistogramSamplePos.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/IDisplay.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/LbeState.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/Priority.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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/10/com/google/hardware/pixel/display/Weight.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/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/10/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
index bbae60d..bf4a34c 100644
--- 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
@@ -39,4 +39,5 @@
   int fullResolutionWidth;
   int fullResolutionHeight;
   com.google.hardware.pixel.display.HistogramSamplePos[] supportSamplePosList;
+  boolean supportBlockingRoi;
 }
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
index c72f349..a5fe1d4 100644
--- 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
@@ -37,4 +37,5 @@
   android.hardware.graphics.common.Rect roi;
   com.google.hardware.pixel.display.Weight weights;
   com.google.hardware.pixel.display.HistogramSamplePos samplePos;
+  @nullable android.hardware.graphics.common.Rect blockingRoi;
 }
diff --git a/display/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/com/google/hardware/pixel/display/HistogramCapability.aidl
index ea6e312..ad6a8a8 100644
--- a/display/com/google/hardware/pixel/display/HistogramCapability.aidl
+++ b/display/com/google/hardware/pixel/display/HistogramCapability.aidl
@@ -51,4 +51,10 @@
      * supportSamplePosList lists the supported histogram sample position.
      */
     HistogramSamplePos[] supportSamplePosList;
+
+    /**
+     * supportBlockingRoi is true means the server support blocking ROI. Otherwise,
+     * the client should not use the blocking ROI.
+     */
+    boolean supportBlockingRoi;
 }
diff --git a/display/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/com/google/hardware/pixel/display/HistogramConfig.aidl
index 4798447..34df010 100644
--- a/display/com/google/hardware/pixel/display/HistogramConfig.aidl
+++ b/display/com/google/hardware/pixel/display/HistogramConfig.aidl
@@ -28,6 +28,8 @@
      * calculated based on the full resolution which is described by
      * getHistogramCapability. Note that the right and bottom coordinates are
      * exclusive.
+     * Note: (0, 0, 0, 0) means the ROI is disabled, histogram hardware will
+     * capture the region inside the entire screen but outside the blocking ROI.
      */
     Rect roi;
 
@@ -44,4 +46,15 @@
      * (before post processing) or POST_POSTPROC (after post processing).
      */
     HistogramSamplePos samplePos;
+
+    /**
+     * blockingRoi is the ROI blocking region. The histogram inside blockingRoi
+     * is not captured even that region lies within the roi. 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.
+     * Note: (0, 0, 0, 0) means the blocking ROI is disabled.
+     */
+    @nullable Rect blockingRoi;
 }