diff options
author | Naseer Ahmed <naseer@codeaurora.org> | 2019-04-11 14:40:54 -0400 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-05-21 15:23:42 -0700 |
commit | 93071bf7476a2fe0bfb1f42074d19af7975425e2 (patch) | |
tree | 66b7471dec926c4f8f549c1018c03f0235531777 | |
parent | c98005e701b03f78d8585aa1afb3295b694276f3 (diff) | |
download | android_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.hal | 36 | ||||
-rw-r--r-- | display/allocator/3.0/hidl_gen_version | 1 | ||||
-rw-r--r-- | display/mapper/2.0/IQtiMapper.hal | 45 | ||||
-rw-r--r-- | display/mapper/3.0/IQtiMapper.hal | 45 | ||||
-rw-r--r-- | display/mapper/3.0/hidl_gen_version | 1 | ||||
-rw-r--r-- | display/mapperextensions/1.0/IQtiMapperExtensions.hal | 175 | ||||
-rw-r--r-- | display/mapperextensions/1.0/types.hal | 47 |
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; +}; |