Merge 0f893c2254af1011126b4bc660724b2ba339167b on remote branch
Change-Id: I1e8424fd8f921375f66677b599a4a67d818df775
diff --git a/Android.mk b/Android.mk
index 7327f25..f2ef2b6 100644
--- a/Android.mk
+++ b/Android.mk
@@ -8,14 +8,7 @@
LOCAL_MODULE_RELATIVE_PATH := hw
# KEYSTONE(I1132378f14428bf511f3cea4f419e90a6e89f823,b/181709127)
-LOCAL_SHARED_LIBRARIES := liblog libcutils libdl libxml2 libbase libutils libbinder_ndk
-
-ifeq ( ,$(filter Tiramisu T 13, $(PLATFORM_VERSION)))
- LOCAL_SHARED_LIBRARIES += android.hardware.power-V1-ndk_platform
-else
- LOCAL_SHARED_LIBRARIES += android.hardware.power-V1-ndk
-endif
-
+LOCAL_SHARED_LIBRARIES := liblog libcutils libdl libxml2 libbase libutils android.hardware.power-V1-ndk_platform libbinder_ndk
LOCAL_HEADER_LIBRARIES += libutils_headers
LOCAL_HEADER_LIBRARIES += libhardware_headers
LOCAL_SRC_FILES := power-common.c metadata-parser.c utils.c list.c hint-data.c powerhintparser.c Power.cpp main.cpp
diff --git a/config/neo/powerhint.xml b/config/neo/powerhint.xml
new file mode 100644
index 0000000..406f053
--- /dev/null
+++ b/config/neo/powerhint.xml
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<!--
+/*Copyright (c) 2020-2021, 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.
+ */
+ /*
+ * 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.
+ */
+-->
+<HintConfigs>
+ <Powerhint>
+ <!--camera ZSLPreview-->
+ <!--CPU-LLC BWMON - Set sample_ms 33-->
+ <!--CPU-LLC BWMON - Set io_percent 100 -->
+ <!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC BWMON - Set max freq 933mhz -->
+ <!--CPU-LLC-DDR BWMON - Set sample_ms 33 -->
+ <!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
+ <!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
+ <!--L CPU - Disable schedutil PL -->
+ <!--L CPU - Set hispeed load 99 -->
+ <!--L CPU - max freq 9020000 -->
+ <!--B CPU - Disable Core Control -->
+ <!--GROUP UPMIGRATE - 35 -->
+ <!--GROUP DOWNMIGRATE - 30 -->
+ <!--UPMIGRATE - 35 85-->
+ <!--DOWNMIGRATE - 30 80-->
+ <!--AB_SCALE - 50-->
+ <Config
+ Id="0x00001330" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x4183C000, 0x21, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x21,
+ 0x43020000, 0x64, 0x43024000, 0, 0x41444100, 0, 0x41440100, 0x63, 0x40804100, 0x386, 0x41008000, 0, 0x40CF4000, 0x0023001E, 0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550050, 0x43048000, 0x32"/>
+
+ <!--camera 30fps-->
+ <!--CPU-LLC BWMON - Set sample_ms 33 -->
+ <!--CPU-LLC BWMON - Set io_percent 100 -->
+ <!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC BWMON - Set max freq 933mhz -->
+ <!--CPU-LLC-DDR BWMON - Set sample_ms 33 -->
+ <!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
+ <!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC-DDR BWMON - Set min_freq 547 -->
+ <!--L CPU max freq 9020000 -->
+ <!--L CPU - Disable schedutil PL -->
+ <!--B CPU - Disable schedutil PL -->
+ <!--B CPU - Set hispeed load 99 -->
+ <!--UPMIGRATE - 45 85 -->
+ <!--DOWNMIGRATE - 40 85 -->
+ <!--B CPU - Disable Core Control -->
+ <!--AB_SCALE - 50-->
+ <Config
+ Id="0x00001331" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x4183C000, 0x21, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x21,
+ 0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x858B8 ,0x40804100, 0x386, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
+ 0x40CE0000, 0x002D0028, 0x40CE0200, 0x00550055, 0x41008000, 0, 0x43048000, 0x32"/>
+
+ <!--camera 60fps-->
+ <!--CPU-LLC BWMON - Set sample_ms 16 -->
+ <!--CPU-LLC BWMON - Set io_percent 100 -->
+ <!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC BWMON - Set max freq 933mhz -->
+ <!--CPU-LLC-DDR BWMON - Set sample_ms 16 -->
+ <!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
+ <!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC-DDR BWMON - Set min_freq 1555 -->
+ <!--L CPU max freq 1094000 -->
+ <!--L CPU - Disable schedutil PL -->
+ <!--B CPU - Disable schedutil PL -->
+ <!--B CPU - Set hispeed load 99 -->
+ <!--UPMIGRATE - 35 85-->
+ <!--DOWNMIGRATE - 30 85-->
+ <!--B CPU - Disable Core Control -->
+ <!--AB_SCALE - 50-->
+ <Config
+ Id="0x00001332" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x4183C000, 0x10, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x10,
+ 0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x17BA38, 0x40804100, 0x446, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
+ 0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550055, 0x41008000, 0, 0x43048000, 0x32"/>
+
+ <!-- camera HFR -->
+ <!--CPU-LLC BWMON - Set sample_ms 16 -->
+ <!--CPU-LLC BWMON - Set io_percent 100 -->
+ <!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC BWMON - Set max freq 933mhz -->
+ <!--CPU-LLC-DDR BWMON - Set sample_ms 16 -->
+ <!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
+ <!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
+ <!--CPU-LLC-DDR BWMON - Set min_freq 1555 -->
+ <!--L CPU max freq 1094000 -->
+ <!--L CPU - Disable schedutil PL -->
+ <!--B CPU - Disable schedutil PL -->
+ <!--B CPU - Set hispeed load 99 -->
+ <!--UPMIGRATE - 35 85-->
+ <!--DOWNMIGRATE - 30 85-->
+ <!--B CPU - Disable Core Control -->
+ <Config
+ Id="0x00001333" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x4183C000, 0x10, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x10,
+ 0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x17BA38, 0x40804100, 0x446, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
+ 0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550055, 0x41008000, 0"/>
+
+ <!--video encode HFR 480 fps-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- MPCTLV3_SCHED_BOOST, 0x1 -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, 0xFFF -->
+ <Config
+ Id="0x00001334" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40400000, 0x1, 0x40800100, 0x40C, 0x40800000, 0x4CC, 0x40C20000, 0x14,
+ 0x40C1C000, 0x1E, 0x41820000, 0x0A, 0x41808000, 0x50, 0x4180C000, 0"/>
+
+ <!-- same settings for all the qvr power levels intentionally -->
+ <!-- qvr level cpu1 gpu1 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130A" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu1 gpu2 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130B" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu1 gpu3 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130C" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu1 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130D" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu2 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130E" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu3 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130F" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu1 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001310" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu2 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001311" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu3 -->
+ <!-- Prime CPU - Cluster min freq ~.768 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
+ <!-- B CPU - Cluster min freq ~.652 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.208 Ghz -->
+ <!-- L CPU - Cluster min freq ~.614 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001312" Enable="true" Target="neo_la" Timeout="0"
+ Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
+ 0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
+ 0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- sustained performance -->
+ <!-- Prime CPU - Cluster min freq uncapped -->
+ <!-- B CPU - Cluster min freq uncapped -->
+ <!-- L CPU - Cluster min freq uncapped -->
+ <!-- Prime CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- B CPU - Cluster max freq ~1.382 GHz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min freq 285Mhz -->
+ <!-- GPU - max freq 443Mhz -->
+ <!-- GPUBW freq uncapped -->
+ <Config
+ Id="0x00001206" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40800200, 0x0, 0x40800000, 0x0, 0x40800100, 0x0, 0x40804200, 0x446,
+ 0x40804000, 0x566, 0x40804100, 0x446, 0X4280C000, 0x11D, 0X42810000, 0x1BB,
+ 0x42814000, 0x0"/>
+
+ <!-- vr mode -->
+ <!-- Prime CPU - Cluster min freq ~1.094 Ghz -->
+ <!-- B CPU - Cluster min freq ~1.132 Ghz -->
+ <!-- L CPU - Cluster min freq ~0.902 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~2.169 Ghz -->
+ <!-- B CPU - Cluster max freq ~1.804 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.651 Ghz -->
+ <!-- GPU - min freq 285Mhz -->
+ <!-- GPU - max freq 540Mhz -->
+ <!-- GPUBW uncapped -->
+ <Config
+ Id="0x00001207" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40800200, 0x446, 0x40800000, 0x46C, 0x40800100, 0x386, 0x40804200, 0x879,
+ 0x40804000, 0x70C, 0x40804100, 0x673, 0X4280C000, 0x11D, 0X4280C000, 0x21C,
+ 0x42814000, 0x0"/>
+
+ <!-- vr mode sustained performance -->
+ <!-- Prime CPU - Cluster min freq ~1.094 Ghz -->
+ <!-- B CPU - Cluster min freq ~1.132 Ghz -->
+ <!-- L CPU - Cluster min freq ~1.094 Ghz -->
+ <!-- Prime CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- B CPU - Cluster max freq ~1.132 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.094 Ghz -->
+ <!-- GPU - min freq 443Mhz -->
+ <!-- GPU - max freq 443Mhz -->
+ <!-- GPUBW uncapped -->
+ <Config
+ Id="0x00001301" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40800200, 0x446, 0x40800000, 0x46C, 0x40800100, 0x446, 0x40804200, 0x446,
+ 0x40804000, 0x46C, 0x40804100, 0x446, 0X4280C000, 0x1BB, 0X42810000, 0x1BB,
+ 0x42814000, 0x0"/>
+
+ <!-- camera open tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- MPCTLV3_SCHED_BOOST, 0x1 -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz-->
+ <Config
+ Id="0x00001337" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0X70C, 0x40800000, 0X70C,
+ 0x40804100, 0X673, 0x40800100, 0X673, 0x40800200, 0X879, 0x40804200, 0X879"/>
+
+ <!-- camera close tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- MPCTLV3_SCHED_BOOST, 0x1 -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
+ <Config
+ Id="0x00001338" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0X70C, 0x40800000, 0X70C,
+ 0x40804100, 0X673, 0x40800100, 0X673, 0x40800200, 0X879, 0x40804200, 0X879"/>
+
+ <!-- camera snapshot tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- Silver cluster min freq to ~1.094 GHz -->
+ <!-- Gold cluster min freq to 1.132 GHz -->
+ <!-- MPCTLV3_SCHED_DOWNMIGRATE, 0x14 -->
+ <!-- MPCTLV3_SCHED_UPMIGRATE, 0x1E -->
+ <Config
+ Id="0x00001339" Enable="true" Timeout="0" Target="neo_la"
+ Resources="0x40400000, 0x1, 0x40800100, 0x446, 0x40800000, 0x46C, 0x40CE0000, 0x001E0014"/>
+
+ </Powerhint>
+</HintConfigs>
+
diff --git a/config/parrot/powerhint.xml b/config/parrot/powerhint.xml
new file mode 100644
index 0000000..6e24a52
--- /dev/null
+++ b/config/parrot/powerhint.xml
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<!--
+/*Copyright (c) 2020-2021, 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.
+ *
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ *
+ */
+-->
+<HintConfigs>
+ <Powerhint>
+
+ <!-- decode 240 fps tunings-->
+ <!--L CPU - max freq 700000 -->
+ <Config
+ Id="0X00001505" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40804100, 0x2BC"/>
+
+ <!-- video decode 30 fps non secure content tunings-->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0XA -->
+ <Config
+ Id="0X00001502" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40800000, 0XA"/>
+
+ <!-- video decode 30 fps secure content tunings-->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0XA -->
+ <Config
+ Id="0X00001504" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40800000, 0XA"/>
+
+ <!--camera preview -->
+ <!--L CPU SCHED LOAD BOOST -->
+ <!--L CPU Hispeed freq of 940Mhz -->
+ <!--L CPU - Set hispeed load 95 -->
+ <!--CPU-DDR BWMON - Set sample_ms 33 -->
+ <!--Sched downmigrate/group_downmigrate 40, Upmigrate/group_upmigrate 45 -->
+ <!--Set uclamp latency sensitiv40CF4000,002D0028ity to 1 -->
+ <!--AB-SCALE - 50 -->
+ <Config
+ Id="0x00001330" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x4143C100, 940, 0x41440100, 0x5F,
+ 0x43034000, 0x21, 0x40CE0000, 0x002D0028, 0x40CF4000, 0x002D0028,
+ 0x40CEC000, 0x1, 0x43048000, 0x32"/>
+
+ <!-- camera 30fps encode -->
+ <!--L CPU SCHED LOAD BOOST -->
+ <!--L CPU Hispeed freq of 940Mhz -->
+ <!--L CPU - Set hispeed load 95 -->
+ <!--CPU-DDR BWMON - Set sample_ms 33 -->
+ <!--L CPU Min Freq 940, Max Freq 1804 -->
+ <!--Sched downmigrate/group_downmigrate 40, Upmigrate/group_upmigrate 45 -->
+ <!--Set uclamp latency sensitivity to 1 -->
+ <!--AB_SCALE - 50 -->
+ <Config
+ Id="0x00001331" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x4143C100, 940, 0x41440100, 0x5F,
+ 0x43034000, 0x21, 0x40800100, 940, 0x40804100, 1804, 0x40CE0000, 0x002D0028,
+ 0x40CF4000, 0x002D0028, 0x40CEC000, 0x1, 0x43048000, 0x32"/>
+
+ <!-- camera 60 FPS -->
+ <!--L CPU SCHED LOAD BOOST -->
+ <!--CPU-DDR BWMON - Set sample_ms 33 -->
+ <!--Sched downmigrate/group_downmigrate 30, Upmigrate/group_upmigrate 35 -->
+ <!--Set uclamp latency sensitivity to 1 -->
+ <!--AB_SCALE - 50 -->
+ <Config
+ Id="0x00001332" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x43034000, 0x21, 0x40CE0000, 0x0023001E,
+ 0x40CF4000, 0x0023001E, 0x40CEC000, 0x1, 0x43048000, 0x32"/>
+
+ <!-- camera HFR -->
+ <!--L CPU CORE 0 SCHED LOAD BOOST -->
+ <!--CPU-DDR BWMON - Set sample ms 33 -->
+ <!--CPU CORE 0 Min freq to 1.113Ghz -->
+ <!--Sched downmigrate/group_downmigrate 30, Upmigrate/group_upmigrate 35 -->
+ <!--Set uclamp latency sensitivity to 1 -->
+ <Config
+ Id="0x00001333" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x43034000, 0x21, 0x40800100, 0x459,
+ 0x40CE0000, 0x0023001E, 0x40CF4000, 0x0023001E, 0x40CEC000, 0x1"/>
+
+ <!-- HFR 480fps -->
+ <!--L CPU CORE 0 SCHED LOAD BOOST -->
+ <!--CPU-DDR BWMON - Set sample ms 33 -->
+ <!--CPU CORE 0 Min freq to 1.113Ghz -->
+ <!--Set uclamp latency sensitivity to 1 -->
+ <Config
+ Id="0x00001334" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x43034000, 0x21, 0x40800100, 0x459,
+ 0x40CEC000, 0x1"/>
+
+ <!-- multi camera 30fps-->
+ <!--L CPU CORE 0 SCHED LOAD BOOST -->
+ <!--L CPU Hispeed freq of 940Mhz -->
+ <!--CPU-DDR BWMON - Set sample_ms 20 -->
+ <!--L CPU Min Freq 940, Max Freq 1804 -->
+ <!--Set uclamp latency sensitivity to 1 -->
+ <!--AB_SCALE - 50 -->
+ <Config
+ Id="0x00001336" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40C68100, 0xFFFFFFFA, 0x4143C100, 940, 0x43034000, 0x21,
+ 0x40800100, 1113, 0x40804100, 1804, 0x40CEC000, 0x1, 0x43048000, 0x32"/>
+
+ <!-- same settings for all the qvr power levels intentionally -->
+ <!-- qvr level cpu1 gpu1 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130A" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu1 gpu2 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130B" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu1 gpu3 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130C" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu1 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130D" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu2 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130E" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu2 gpu3 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x0000130F" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu1 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001310" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu2 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001311" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- qvr level cpu3 gpu3 -->
+ <!-- B CPU - Cluster min freq ~.691 Ghz -->
+ <!-- B CPU - Cluster max freq ~.2.131 Ghz -->
+ <!-- L CPU - Cluster min freq ~.691 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min pwrlevel 7 (freq 345 Mhz) -->
+ <!-- GPU - max pwrlevel 0 (freq 940 Mhz) -->
+ <!-- Min Big CPUs 2 -->
+ <!-- Idefinite Duration -->
+ <Config
+ Id="0x00001312" Enable="true" Target="parrot" Timeout="0"
+ Resources="0x40800000, 0x2B3, 0x40804000, 0x853, 0x40800100, 0x2B3, 0x40804100, 0x459,
+ 0x42804000, 0x7, 0x42808000, 0x0, 0x41000000, 0x2"/>
+
+ <!-- sustained performance -->
+ <!-- B CPU - Cluster min freq uncapped -->
+ <!-- L CPU - Cluster min freq uncapped -->
+ <!-- B CPU - Cluster max freq ~1.344 GHz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min freq 345Mhz -->
+ <!-- GPU - max freq 500Mhz -->
+ <!-- GPUBW freq uncapped -->
+ <Config
+ Id="0x00001206" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40800000, 0x0, 0x40800100, 0x0, 0x40804000, 0x540, 0x40804100, 0x459,
+ 0X4280C000, 0x159, 0X42810000, 0x1F4, 0x42814000, 0x0"/>
+
+ <!-- vr mode -->
+ <!-- B CPU - Cluster min freq ~1.190 Ghz -->
+ <!-- L CPU - Cluster min freq ~0.940 Ghz -->
+ <!-- B CPU - Cluster max freq ~1.90 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.804 Ghz -->
+ <!-- GPU - min freq 345Mhz -->
+ <!-- GPU - max freq 734Mhz -->
+ <!-- GPUBW uncapped -->
+ <Config
+ Id="0x00001207" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40800000, 0x4A6, 0x40800100, 0x3AC, 0x40804000, 0x76C, 0x40804100, 0x70C,
+ 0X4280C000, 0x159, 0X4280C000, 0x2DE, 0x42814000, 0x0"/>
+
+ <!-- vr mode sustained performance -->
+ <!-- B CPU - Cluster min freq ~1.190 Ghz -->
+ <!-- L CPU - Cluster min freq ~1.113 Ghz -->
+ <!-- B CPU - Cluster max freq ~1.190 Ghz -->
+ <!-- L CPU - Cluster max freq ~1.113 Ghz -->
+ <!-- GPU - min freq 500Mhz -->
+ <!-- GPU - max freq 500Mhz -->
+ <!-- GPUBW uncapped -->
+ <Config
+ Id="0x00001301" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40800000, 0x4A6, 0x40800100, 0x459, 0x40804000, 0x4A6, 0x40804100, 0x459,
+ 0X4280C000, 0x1F4, 0X42810000, 0x1F4, 0x42814000, 0x0"/>
+
+ <!-- camera open tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- MPCTLV3_SCHED_BOOST, 0x1 -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
+ <Config
+ Id="0x00001337" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0XFFF, 0x40800000, 0XFFF,
+ 0x40804100, 0XFFF, 0x40800100, 0XFFF"/>
+
+ <!-- camera close tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- MPCTLV3_SCHED_BOOST, 0x1 -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
+ <!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0,0xFFF -->
+ <!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
+ <Config
+ Id="0x00001338" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0XFFF, 0x40800000, 0XFFF,
+ 0x40804100, 0XFFF, 0x40800100, 0XFFF"/>
+
+ <!-- camera snapshot tunings-->
+ <!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
+ <!-- Silver cluster min freq to ~1.113 GHz -->
+ <!-- Gold cluster min freq to 1.190 GHz -->
+ <!-- MPCTLV3_SCHED_DOWNMIGRATE, 0x14 -->
+ <!-- MPCTLV3_SCHED_UPMIGRATE, 0x1E -->
+ <Config
+ Id="0x00001339" Enable="true" Timeout="0" Target="parrot"
+ Resources="0x40400000, 0x1, 0x40800100, 0x459, 0x40800000, 0x4A6, 0x40CE0000, 0x001E0014,"/>
+
+ </Powerhint>
+</HintConfigs>
diff --git a/power-vendor-product.mk b/power-vendor-product.mk
index 2a019cc..8d44b56 100644
--- a/power-vendor-product.mk
+++ b/power-vendor-product.mk
@@ -19,4 +19,8 @@
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/taro/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
else ifeq ($(TARGET_BOARD_PLATFORM),kalama)
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/kalama/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
+else ifeq ($(TARGET_BOARD_PLATFORM),parrot)
+PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/parrot/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
+else ifeq ($(TARGET_BOARD_PLATFORM),neo)
+PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/neo/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
endif