summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaseer Ahmed <naseer@codeaurora.org>2019-04-11 14:40:54 -0400
committerGerrit - the friendly Code Review server <code-review@localhost>2019-05-21 15:23:42 -0700
commit93071bf7476a2fe0bfb1f42074d19af7975425e2 (patch)
tree66b7471dec926c4f8f549c1018c03f0235531777
parentc98005e701b03f78d8585aa1afb3295b694276f3 (diff)
downloadandroid_vendor_qcom_opensource_interfaces-93071bf7476a2fe0bfb1f42074d19af7975425e2.tar.gz
android_vendor_qcom_opensource_interfaces-93071bf7476a2fe0bfb1f42074d19af7975425e2.tar.bz2
android_vendor_qcom_opensource_interfaces-93071bf7476a2fe0bfb1f42074d19af7975425e2.zip
display: Add extensions for mapper3.0 and allocator 3.0
To avoid future issues with hidl revisioning inheritance, IQtiMapper now contains an IQtiMapperExtensions class which holds the extensions Change-Id: I1d28a3ffeabc0d06450216f46725e60b524e7002
-rw-r--r--display/allocator/3.0/IQtiAllocator.hal36
-rw-r--r--display/allocator/3.0/hidl_gen_version1
-rw-r--r--display/mapper/2.0/IQtiMapper.hal45
-rw-r--r--display/mapper/3.0/IQtiMapper.hal45
-rw-r--r--display/mapper/3.0/hidl_gen_version1
-rw-r--r--display/mapperextensions/1.0/IQtiMapperExtensions.hal175
-rw-r--r--display/mapperextensions/1.0/types.hal47
7 files changed, 350 insertions, 0 deletions
diff --git a/display/allocator/3.0/IQtiAllocator.hal b/display/allocator/3.0/IQtiAllocator.hal
new file mode 100644
index 0000000..a47f6e4
--- /dev/null
+++ b/display/allocator/3.0/IQtiAllocator.hal
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2019 The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of The Linux Foundation. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package vendor.qti.hardware.display.allocator@3.0;
+
+import android.hardware.graphics.allocator@3.0::IAllocator;
+
+interface IQtiAllocator extends IAllocator {
+};
+
diff --git a/display/allocator/3.0/hidl_gen_version b/display/allocator/3.0/hidl_gen_version
new file mode 100644
index 0000000..badc32f
--- /dev/null
+++ b/display/allocator/3.0/hidl_gen_version
@@ -0,0 +1 @@
+version=2
diff --git a/display/mapper/2.0/IQtiMapper.hal b/display/mapper/2.0/IQtiMapper.hal
new file mode 100644
index 0000000..1e5584d
--- /dev/null
+++ b/display/mapper/2.0/IQtiMapper.hal
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2019 The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of The Linux Foundation. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package vendor.qti.hardware.display.mapper@2.0;
+
+import android.hardware.graphics.mapper@2.1;
+import android.hardware.graphics.mapper@2.0::types;
+import vendor.qti.hardware.display.mapperextensions@1.0::IQtiMapperExtensions;
+
+interface IQtiMapper extends IMapper {
+ /*
+ * Returns an interface to QTI specific extensions for IMapper
+ * If there are newer versions of IQtiMapper with the same major revision (1)
+ * the client can cast this extensions object to a newer revision
+ */
+ @callflow(next="*")
+ getMapperExtensions() generates (Error error, IQtiMapperExtensions extensions);
+};
+
diff --git a/display/mapper/3.0/IQtiMapper.hal b/display/mapper/3.0/IQtiMapper.hal
new file mode 100644
index 0000000..23b9af7
--- /dev/null
+++ b/display/mapper/3.0/IQtiMapper.hal
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2019 The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of The Linux Foundation. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package vendor.qti.hardware.display.mapper@3.0;
+
+import android.hardware.graphics.mapper@3.0;
+import android.hardware.graphics.mapper@3.0::types;
+import vendor.qti.hardware.display.mapperextensions@1.0::IQtiMapperExtensions;
+
+interface IQtiMapper extends IMapper {
+ /*
+ * Returns an interface to QTI specific extensions for IMapper
+ * If there are newer versions of IQtiMapper with the same major revision (1)
+ * the client can cast this extensions object to a newer revision
+ */
+ @callflow(next="*")
+ getMapperExtensions() generates (Error error, IQtiMapperExtensions extensions);
+};
+
diff --git a/display/mapper/3.0/hidl_gen_version b/display/mapper/3.0/hidl_gen_version
new file mode 100644
index 0000000..badc32f
--- /dev/null
+++ b/display/mapper/3.0/hidl_gen_version
@@ -0,0 +1 @@
+version=2
diff --git a/display/mapperextensions/1.0/IQtiMapperExtensions.hal b/display/mapperextensions/1.0/IQtiMapperExtensions.hal
new file mode 100644
index 0000000..2db753c
--- /dev/null
+++ b/display/mapperextensions/1.0/IQtiMapperExtensions.hal
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2019 The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package vendor.qti.hardware.display.mapperextensions@1.0;
+
+interface IQtiMapperExtensions {
+
+ /*
+ * Check if the secure buffer can be mapped
+ */
+ @callflow(next="*")
+ getMapSecureBufferFlag(pointer buffer) generates (Error error, bool mapSecureBuffer);
+
+ /*
+ * Check if the buffer is interlaced
+ */
+ @callflow(next="*")
+ getInterlacedFlag(pointer buffer) generates (Error error, bool interlaced);
+
+ /*
+ * Get custom dimensions from handle
+ * Uses information in the metadata to return
+ * custom stride and height
+ */
+ @callflow(next="*")
+ getCustomDimensions(pointer buffer) generates (Error error, int32_t stride, int32_t height);
+
+ /*
+ * Get RGB Data address
+ */
+ @callflow(next="*")
+ getRgbDataAddress(pointer buffer) generates (Error error, pointer rgb_data);
+
+ /*
+ * Calculate aligned width, aligned height and if UBWC is enabled from
+ * the given width, height, format and gralloc usage
+ */
+ @callflow(next="*")
+ calculateBufferAttributes(int32_t width, int32_t height, int32_t format, uint64_t usage)
+ generates (Error error, int32_t aligned_width, int32_t aligned_height, bool ubwc_enabled);
+
+ /*
+ * Gets the color space from the gralloc metadata
+ */
+ @callflow(next="*")
+ getColorSpace(pointer buffer) generates (Error error, int32_t color_space);
+
+ /*
+ * Get YUV plane info
+ * Returns a vector of YCbCrLayouts of size 2
+ * The second member in the vector is populated if the buffer is interlaced
+ */
+ @callflow(next="*")
+ getYuvPlaneInfo(pointer buffer) generates (Error error, vec<YCbCrLayout> layout);
+
+
+ /*
+ * Set Single buffer mode
+ */
+ @callflow(next="*")
+ setSingleBufferMode(pointer buffer, bool enable) generates (Error error);
+
+ /*
+ * Get custom format and private handle flags for a given combination of
+ * format and usage flags.
+ */
+ @callflow(next="*")
+ getCustomFormatFlags(int32_t format, uint64_t usage)
+ generates (Error error, int32_t format, uint64_t priv_flags);
+
+ /*
+ * Get fd of allocated buffer.
+ */
+ @callflow(next="*")
+ getFd(pointer buffer) generates (Error error, int32_t fd);
+
+ /*
+ * Get width of the actual allocated buffer.
+ */
+ @callflow(next="*")
+ getWidth(pointer buffer) generates (Error error, int32_t width);
+
+ /*
+ * Get height of the actual allocated buffer.
+ */
+ @callflow(next="*")
+ getHeight(pointer buffer) generates (Error error, int32_t height);
+
+ /*
+ * Get offset of allocated buffer.
+ */
+ @callflow(next="*")
+ getOffset(pointer buffer) generates (Error error, uint64_t offset);
+
+ /*
+ * Get size of allocated buffer.
+ */
+ @callflow(next="*")
+ getSize(pointer buffer) generates (Error error, uint64_t size);
+
+ /*
+ * Get width ask to allocate.
+ */
+ @callflow(next="*")
+ getUnalignedWidth(pointer buffer) generates (Error error, int32_t unaligned_width);
+
+ /*
+ * Get height ask to allocate.
+ */
+ @callflow(next="*")
+ getUnalignedHeight(pointer buffer) generates (Error error, int32_t unaligned_height);
+
+ /*
+ * Get number of layer.
+ */
+ @callflow(next="*")
+ getLayerCount(pointer buffer) generates (Error error, uint64_t layer_count);
+
+ /*
+ * Get Id of allocated buffer.
+ */
+ @callflow(next="*")
+ getId(pointer buffer) generates (Error error, uint64_t id);
+
+ /*
+ * Get usage flags of allocated buffer.
+ */
+ @callflow(next="*")
+ getUsageFlags(pointer buffer) generates (Error error, uint64_t usage);
+
+ /*
+ * Get format of allocated buffer.
+ */
+ @callflow(next="*")
+ getFormat(pointer buffer) generates (Error error, int32_t format);
+
+ /*
+ * Get private flags of allocated buffer.
+ */
+ @callflow(next="*")
+ getPrivateFlags(pointer buffer) generates (Error error, int32_t flags);
+
+ /* Get graphics surface metadata address
+ */
+ @callflow(next="*")
+ getSurfaceMetadata(pointer buffer) generates (Error error, pointer metadata);
+
+};
+
diff --git a/display/mapperextensions/1.0/types.hal b/display/mapperextensions/1.0/types.hal
new file mode 100644
index 0000000..548b65c
--- /dev/null
+++ b/display/mapperextensions/1.0/types.hal
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2019 The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package vendor.qti.hardware.display.mapperextensions@1.0;
+
+
+enum Error : int32_t {
+ NONE = 0,
+ BAD_BUFFER = 2,
+ NO_RESOURCES = 5,
+ UNSUPPORTED = 7,
+};
+
+struct YCbCrLayout {
+ pointer y;
+ pointer cb;
+ pointer cr;
+ uint32_t yStride;
+ uint32_t cStride;
+ uint32_t chromaStep;
+};