Merge tag 'LA.QSSI.14.0.r1-11200-qssi.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/display-commonsys-intf into lineage-21.0

"LA.QSSI.14.0.r1-11200-qssi.0"

* tag 'LA.QSSI.14.0.r1-11200-qssi.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/display-commonsys-intf:
  display: add interface functions to support idle content fps hint
  smomo_interface: add api to get refresh rate vote for tracked layer
  commonsys-intf: gralloc: add buffer dequeue duration in private metadata

Change-Id: Id3ef9a97ebb409c31f4775e0001222589b31a654
diff --git a/gralloc/QtiGralloc.h b/gralloc/QtiGralloc.h
index d25b264..f43da3f 100644
--- a/gralloc/QtiGralloc.h
+++ b/gralloc/QtiGralloc.h
@@ -29,7 +29,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * Changes from Qualcomm Innovation Center are provided under the following license:
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  * SPDX-License-Identifier: BSD-3-Clause-Clear
  */
 
@@ -144,6 +144,8 @@
 static const MetadataType MetadataType_TimedRendering = {VENDOR_QTI, QTI_TIMED_RENDERING};
 static const MetadataType MetadataType_CustomContentMetadata = {VENDOR_QTI,
                                                                 QTI_CUSTOM_CONTENT_METADATA};
+static const MetadataType MetadataType_BufferDequeueDuration = {VENDOR_QTI,
+                                                                QTI_BUFFER_DEQUEUE_DURATION};
 
 // 0 is also used as invalid value in standard metadata
 static const MetadataType MetadataType_Invalid = {VENDOR_QTI, 0};
diff --git a/gralloc/QtiGrallocMetadata.h b/gralloc/QtiGrallocMetadata.h
index 6d139dd..61a4221 100644
--- a/gralloc/QtiGrallocMetadata.h
+++ b/gralloc/QtiGrallocMetadata.h
@@ -29,7 +29,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * Changes from Qualcomm Innovation Center are provided under the following license:
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  * SPDX-License-Identifier: BSD-3-Clause-Clear
  */
 
@@ -81,6 +81,7 @@
 #define QTI_EARLYNOTIFY_LINECOUNT 10031
 // Heap Name
 #define QTI_HEAP_NAME 10032
+#define QTI_BUFFER_DEQUEUE_DURATION 10033
 // Used to indicate to framework that internal definitions are used instead
 #define COMPRESSION_QTI_UBWC 20001
 #define INTERLACED_QTI 20002
diff --git a/gralloc/QtiGrallocPriv.h b/gralloc/QtiGrallocPriv.h
index e1d63cb..5fc2db1 100644
--- a/gralloc/QtiGrallocPriv.h
+++ b/gralloc/QtiGrallocPriv.h
@@ -30,41 +30,11 @@
  */
 
 /*
-* Changes from Qualcomm Innovation Center are provided under the following license:
-*
-* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted (subject to the limitations in the
-* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the
-*      names of its contributors may be used to endorse or promote
-*      products derived from this software without specific prior
-*      written permission.
-*
-* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
-*/
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
 
 #ifndef __QTIGRALLOCPRIV_H__
 #define __QTIGRALLOCPRIV_H__
@@ -147,6 +117,8 @@
   struct VideoTranscodeStatsMetadata video_transcode_stats;
   int32_t videoEarlyNotifyLineCount;
   char heapName[MAX_NAME_LEN];
+  /* Last buffer dequeue duration used by SmoMo to detect blocking */
+  int64_t bufferDequeueDuration;
 };
 
 namespace qtigralloc {
diff --git a/include/display_extn_intf.h b/include/display_extn_intf.h
index 413ea47..655f341 100644
--- a/include/display_extn_intf.h
+++ b/include/display_extn_intf.h
@@ -95,6 +95,8 @@
   virtual void RegisterDisplay(uint32_t display_id) = 0;
   virtual void UnregisterDisplay(uint32_t display_id) = 0;
   virtual int SetActiveConfig(uint32_t display_id, uint32_t config_id) = 0;
+  virtual void SetSupportedRefreshRates(std::vector<float> fps_list) = 0;
+  virtual void NotifyDisplayUpdateImminent() = 0;
   virtual int NotifyEarlyWakeUp(bool gpu, bool display) = 0;
   virtual int NotifyDisplayEarlyWakeUp(uint32_t display_id) = 0;
   virtual int SetEarlyWakeUpConfig(uint32_t display_id, bool enable) = 0;
diff --git a/include/smomo_interface.h b/include/smomo_interface.h
index 72894bc..68dfb17 100644
--- a/include/smomo_interface.h
+++ b/include/smomo_interface.h
@@ -23,40 +23,11 @@
 */
 
 /*
-* Changes from Qualcomm Innovation Center are provided under the following license:
-*
-* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted (subject to the limitations in the
-* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
-*      contributors may be used to endorse or promote products derived
-*      from this software without specific prior written permission.
-*
-* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
-*/
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
 
 /*! @file smomo.h
   @brief Interface file for SmoMo which defines the public interface exposed to SmoMo clients.
@@ -74,6 +45,7 @@
 
 #include <vector>
 #include <string>
+#include <map>
 
 #define TIMED_RENDERING_METADATA_FEATURE 1
 #define FRC_FRAME_PACING_FEATURE 1
@@ -290,6 +262,15 @@
   */
   virtual void SetRefreshRateChangeStatus(bool enable) = 0;
 
+  /*! @brief Get SmoMo refresh rate votes for the tracked layers
+
+    @details This function is called by SmoMo clients
+    to get the refresh rate votes for SmoMo tracked layers
+
+    @return \link void \endlink
+  */
+  virtual void GetRefreshRateVote(std::map<int, int>& refresh_rate_votes) = 0;
+
 };
 
 typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);