diff options
author | Xin Li <delphij@google.com> | 2023-12-08 13:14:16 -0800 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2023-12-08 13:14:16 -0800 |
commit | 44f34394257c781bc0213ff2f089cf06ed9eeddd (patch) | |
tree | a2acc0ea146ee79e9f4c3ea12fcdd83425ed9391 | |
parent | 36e6499a8930d5ab3bce453575bfd284e61944e2 (diff) | |
parent | aa291854af598bdde5d0cb31649c0f41b9465180 (diff) | |
download | interfaces-44f34394257c781bc0213ff2f089cf06ed9eeddd.tar.gz |
Merge Android 14 QPR1
Merged-In: If8028bace8cf35ff7525405b31c1ac313f98fc24
Bug: 315507370
Change-Id: Ic0e7a3f26a3e3dfc5ea7c729d1f19031ae79d4ac
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); } |