powerhint: Add Display refresh rate hint, DISPLAY_IDLE and DISPLAY_UPDATE_IMMINENT

Add display refresh rate changed hints:
REFRESH_120FPS
REFRESH_90FPS
REFRESH_60FPS

For DISPLAY_IDLE hint, set TAUClampBoost to 0.
Then for DISPLAY_UPDATE_IMMINENT and INTERACTION, set TAUClampBoost back to default.

Bug: 170648686
Bug: 170508822
Test: `watch -n 1 adb shell cat /dev/cpuctl/top-app/cpu.uclamp.min`
Change-Id: I18fd6d4257f8902ddbbdb3ed4a20b88d5cc43a2c
diff --git a/powerhint.json b/powerhint.json
index e1d0606..08d49ba 100644
--- a/powerhint.json
+++ b/powerhint.json
@@ -86,9 +86,13 @@
       "Name": "TAUClampBoost",
       "Path": "/dev/cpuctl/top-app/cpu.uclamp.min",
       "Values": [
+        "0",
+		"24",
         "18",
+        "12",
         "6"
       ],
+      "DefaultIndex": 0,
       "ResetOnInit": true
     },
     {
@@ -132,6 +136,11 @@
   "Actions": [
     {
       "PowerHint": "INTERACTION",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "INTERACTION",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 6000,
       "Value": "1106000"
@@ -150,11 +159,83 @@
     },
     {
       "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "INTERACTION_120",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "24"
+    },
+    {
+      "PowerHint": "INTERACTION_90",
       "Node": "TAUClampBoost",
       "Duration": 6000,
       "Value": "18"
     },
     {
+      "PowerHint": "INTERACTION_60",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "12"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_60"
+    },
+    {
       "PowerHint": "DEVICE_IDLE",
       "Node": "F2fsRecessModeEnable",
       "Duration": 0,
@@ -174,6 +255,11 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "CPULittleClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -305,6 +391,50 @@
       "Value": "9999999"
     },
     {
+      "PowerHint": "REFRESH_120FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "18"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "12"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "6"
+    },
+    {
+      "PowerHint": "DISABLE_TA_BOOST",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "DoHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "DISPLAY_UPDATE_IMMINENT"
+    },
+    {
+      "PowerHint": "DISPLAY_UPDATE_IMMINENT",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
       "PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
       "Node": "LimitFlashCurrent",
       "Duration": 0,
diff --git a/powerhint_a0.json b/powerhint_a0.json
index b4cb333..f349d24 100644
--- a/powerhint_a0.json
+++ b/powerhint_a0.json
@@ -57,9 +57,13 @@
       "Name": "TAUClampBoost",
       "Path": "/dev/cpuctl/top-app/cpu.uclamp.min",
       "Values": [
+        "0",
+        "40",
         "30",
+        "20",
         "10"
       ],
+      "DefaultIndex": 0,
       "ResetOnInit": true
     },
     {
@@ -102,6 +106,11 @@
   "Actions": [
     {
       "PowerHint": "INTERACTION",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "INTERACTION",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 6000,
       "Value": "1197000"
@@ -114,11 +123,83 @@
     },
     {
       "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "INTERACTION_120",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "40"
+    },
+    {
+      "PowerHint": "INTERACTION_90",
       "Node": "TAUClampBoost",
       "Duration": 6000,
       "Value": "30"
     },
     {
+      "PowerHint": "INTERACTION_60",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "20"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_60"
+    },
+    {
       "PowerHint": "INTERACTION",
       "Node": "PreferHighCapEnable",
       "Duration": 6000,
@@ -138,6 +219,11 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -162,6 +248,12 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "TAUClampBoost",
+      "Duration": 5000,
+      "Value": "30"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "PreferHighCapEnable",
       "Duration": 5000,
       "Value": "1"
@@ -261,6 +353,45 @@
       "Node": "GPUMinFreq",
       "Duration": 0,
       "Value": "455000"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "30"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "20"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "10"
+    },
+    {
+      "PowerHint": "DISABLE_TA_BOOST",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "DoHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "DISPLAY_UPDATE_IMMINENT"
+    },
+    {
+      "PowerHint": "DISPLAY_UPDATE_IMMINENT",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
     }
   ]
 }
diff --git a/powerhint_a1.json b/powerhint_a1.json
index 098efd4..6a13c0f 100644
--- a/powerhint_a1.json
+++ b/powerhint_a1.json
@@ -77,9 +77,13 @@
       "Name": "TAUClampBoost",
       "Path": "/dev/cpuctl/top-app/cpu.uclamp.min",
       "Values": [
+        "0",
+        "40",
         "30",
+        "20",
         "10"
       ],
+      "DefaultIndex": 0,
       "ResetOnInit": true
     },
     {
@@ -132,6 +136,11 @@
   "Actions": [
     {
       "PowerHint": "INTERACTION",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "INTERACTION",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 6000,
       "Value": "1106000"
@@ -150,11 +159,83 @@
     },
     {
       "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "INTERACTION",
+      "Type": "DoHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "INTERACTION_120",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "40"
+    },
+    {
+      "PowerHint": "INTERACTION_90",
       "Node": "TAUClampBoost",
       "Duration": 6000,
       "Value": "30"
     },
     {
+      "PowerHint": "INTERACTION_60",
+      "Node": "TAUClampBoost",
+      "Duration": 6000,
+      "Value": "20"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_120FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_60"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Type": "MaskHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_120"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_90"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "INTERACTION_60"
+    },
+    {
       "PowerHint": "INTERACTION",
       "Node": "UfsClkGateEnable",
       "Duration": 200,
@@ -168,6 +249,11 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "CPUMidClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -293,6 +379,45 @@
       "Value": "9999999"
     },
     {
+      "PowerHint": "REFRESH_120FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "30"
+    },
+    {
+      "PowerHint": "REFRESH_90FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "20"
+    },
+    {
+      "PowerHint": "REFRESH_60FPS",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "10"
+    },
+    {
+      "PowerHint": "DISABLE_TA_BOOST",
+      "Node": "TAUClampBoost",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "DoHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
+      "PowerHint": "DISPLAY_IDLE",
+      "Type": "EndHint",
+      "Value": "DISPLAY_UPDATE_IMMINENT"
+    },
+    {
+      "PowerHint": "DISPLAY_UPDATE_IMMINENT",
+      "Type": "EndHint",
+      "Value": "DISABLE_TA_BOOST"
+    },
+    {
       "PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
       "Node": "LimitFlashCurrent",
       "Duration": 0,