diff --git a/configs/etc/powerhint.json b/configs/etc/powerhint.json new file mode 100644 index 0000000..90ccfcb --- /dev/null +++ b/configs/etc/powerhint.json @@ -0,0 +1,915 @@ +{ + "Nodes": [ + { + "Name": "CPULittleClusterMaxFreq", + "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq", + "Values": [ + "9999999", + "1113600", + "844800", + "1036800", + "1209600", + "1382400", + "1555200" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, + { + "Name": "CPULittleClusterMinFreq", + "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq", + "Values": [ + "9999999", + "576000", + "1113600" + ], + "DefaultIndex": 1, + "ResetOnInit": true + }, + { + "Name": "CPUBigClusterMaxFreq", + "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq", + "Values": [ + "9999999", + "2016000", + "1401600", + "1171200", + "1497600", + "1708800", + "1920000", + "2131200" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, + { + "Name": "CPUBigClusterMinFreq", + "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq", + "Values": [ + "9999999", + "1497600", + "1401600", + "0", + "1286400" + ], + "DefaultIndex": 3, + "ResetOnInit": true + }, + { + "Name": "CPUBigPlusClusterMaxFreq", + "Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq", + "Values": [ + "9999999", + "2016000", + "1401600", + "1708800", + "2015999", + "2227200", + "2534400" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, + { + "Name": "CPUBigPlusClusterMinFreq", + "Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq", + "Values": [ + "9999999", + "1497600", + "1401600", + "0", + "1286400" + ], + "DefaultIndex": 3, + "ResetOnInit": true + }, + { + "Name": "GPUMaxFreq", + "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq", + "Values": [ + "585000000", + "427000000" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, + { + "Name": "GPUMinFreq", + "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/min_freq", + "Values": [ + "585000000", + "427000000", + "345000000", + "257000000" + ], + "ResetOnInit": true + }, + { + "Name": "GPUBusMinFreq", + "Path": "/sys/class/devfreq/soc:qcom,gpubw/min_freq", + "Values": [ + "6881", + "5931", + "3879", + "0" + ], + "ResetOnInit": true + }, + { + "Name": "GPUForceRailOn", + "Path": "/sys/class/kgsl/kgsl-3d0/force_rail_on", + "Values": [ + "1", + "0" + ], + "ResetOnInit": true + }, + { + "Name": "GPUForceClkOn", + "Path": "/sys/class/kgsl/kgsl-3d0/force_clk_on", + "Values": [ + "1", + "0" + ], + "ResetOnInit": true + }, + { + "Name": "GPUIdleTimer", + "Path": "/sys/class/kgsl/kgsl-3d0/idle_timer", + "Values": [ + "10000", + "80" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWHystTriggerCount", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_trigger_count", + "Values": [ + "0", + "3" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWHistMemory", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory", + "Values": [ + "0", + "20" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWHystLength", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length", + "Values": [ + "0", + "10" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWSampleMs", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/sample_ms", + "Values": [ + "10", + "4" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWIOPercent", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/io_percent", + "Values": [ + "80", + "50" + ], + "ResetOnInit": true + }, + { + "Name": "CPUBWMinFreq", + "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq", + "Values": [ + "14236", + "9155", + "2288" + ], + "ResetOnInit": true + }, + { + "Name": "LLCCBWMinFreq", + "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/min_freq", + "Values": [ + "6881", + "2597", + "762" + ], + "ResetOnInit": true + }, + { + "Name": "LLCCBWSampleMs", + "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/sample_ms", + "Values": [ + "10", + "4" + ], + "ResetOnInit": true + }, + { + "Name": "LLCCBWHistMemory", + "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/hist_memory", + "Values": [ + "0", + "20" + ], + "ResetOnInit": true + }, + { + "Name": "LLCCBWHystLength", + "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/hyst_length", + "Values": [ + "0", + "10" + ], + "ResetOnInit": true + }, + { + "Name": "CameraHalCpuset", + "Path": "/dev/cpuset/camera-daemon/cpus", + "Values": [ + "0-5", + "0-7" + ], + "ResetOnInit": true + }, + { + "Name": "LLCCBWHystTriggerCount", + "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/hyst_trigger_count", + "Values": [ + "0", + "3" + ], + "ResetOnInit": true + }, + { + "Name": "L3BigClusterMinFreq", + "Path": "/sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/min_freq", + "Values": [ + "1440000000", + "300000000" + ], + "ResetOnInit": true + }, + { + "Name": "PMQoSCpuDmaLatency", + "Path": "/dev/cpu_dma_latency", + "Values": [ + "2c", + "66" + ], + "HoldFd": true + }, + { + "Name": "PowerHALMainState", + "Path": "vendor.powerhal.state", + "Values": [ + "SUSTAINED_PERFORMANCE", + "" + ], + "Type": "Property" + }, + { + "Name": "PowerHALAudioState", + "Path": "vendor.powerhal.audio", + "Values": [ + "AUDIO_STREAMING_LOW_LATENCY", + "" + ], + "Type": "Property" + }, + { + "Name": "PowerHALRenderingState", + "Path": "vendor.powerhal.rendering", + "Values": [ + "EXPENSIVE_RENDERING", + "" + ], + "Type": "Property" + }, + ], + "Actions": [ + { + "PowerHint": "SUSTAINED_PERFORMANCE", + "Node": "PowerHALMainState", + "Duration": 0, + "Value": "SUSTAINED_PERFORMANCE" + }, + { + "PowerHint": "SUSTAINED_PERFORMANCE", + "Node": "CPUBigClusterMaxFreq", + "Duration": 0, + "Value": "1401600" + }, + { + "PowerHint": "SUSTAINED_PERFORMANCE", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 0, + "Value": "1401600" + }, + { + "PowerHint": "SUSTAINED_PERFORMANCE", + "Node": "CPULittleClusterMaxFreq", + "Duration": 0, + "Value": "1113600" + }, + { + "PowerHint": "SUSTAINED_PERFORMANCE", + "Node": "GPUMaxFreq", + "Duration": 0, + "Value": "427000000" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBigClusterMinFreq", + "Duration": 0, + "Value": "1286400" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 0, + "Value": "1286400" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPULittleClusterMinFreq", + "Duration": 0, + "Value": "1113600" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBWHistMemory", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "INTERACTION", + "Node": "CPUBWMinFreq", + "Duration": 0, + "Value": "9155" + }, + { + "PowerHint": "INTERACTION", + "Node": "LLCCBWMinFreq", + "Duration": 0, + "Value": "2597" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigClusterMaxFreq", + "Duration": 5000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 5000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigClusterMinFreq", + "Duration": 5000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 5000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPULittleClusterMinFreq", + "Duration": 5000, + "Value": "9999999" + }, + { + "PowerHint": "LAUNCH", + "Node": "PMQoSCpuDmaLatency", + "Duration": 5000, + "Value": "2c" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBWHystTriggerCount", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBWHystLength", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBWHistMemory", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBWMinFreq", + "Duration": 5000, + "Value": "14236" + }, + { + "PowerHint": "LAUNCH", + "Node": "GPUForceClkOn", + "Duration": 5000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH", + "Node": "GPUForceRailOn", + "Duration": 5000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH", + "Node": "GPUIdleTimer", + "Duration": 5000, + "Value": "10000" + }, + { + "PowerHint": "LAUNCH", + "Node": "LLCCBWMinFreq", + "Duration": 5000, + "Value": "6881" + }, + { + "PowerHint": "LAUNCH", + "Node": "L3BigClusterMinFreq", + "Duration": 5000, + "Value": "1440000000" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPUBigClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPUBigClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPULittleClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "CPULittleClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_LAUNCH", + "Node": "PMQoSCpuDmaLatency", + "Duration": 1000, + "Value": "2c" + }, + { + "PowerHint": "CAMERA_STREAMING_MID", + "Node": "CPUBigClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_MID", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_MID", + "Node": "CPUBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_MID", + "Node": "CPUBWIOPercent", + "Duration": 0, + "Value": "80" + }, + { + "PowerHint": "CAMERA_STREAMING_MID", + "Node": "LLCCBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBigClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBWIOPercent", + "Duration": 0, + "Value": "80" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "LLCCBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "CPUBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "LLCCBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_HIGH", + "Node": "LLCCBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBigClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBWIOPercent", + "Duration": 0, + "Value": "80" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "LLCCBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "CPUBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "LLCCBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_LOW", + "Node": "LLCCBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "CPUBigClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 0, + "Value": "2016000" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "CPUBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "CPUBWIOPercent", + "Duration": 0, + "Value": "80" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "LLCCBWSampleMs", + "Duration": 0, + "Value": "10" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "LLCCBWHistMemory", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "LLCCBWHystLength", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "LLCCBWHystTriggerCount", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "CAMERA_STREAMING_SECURE", + "Node": "CameraHalCpuset", + "Duration": 0, + "Value": "0-5" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPUBigClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPUBigClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPULittleClusterMaxFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "CPULittleClusterMinFreq", + "Duration": 1000, + "Value": "9999999" + }, + { + "PowerHint": "CAMERA_SHOT", + "Node": "PMQoSCpuDmaLatency", + "Duration": 1000, + "Value": "2c" + }, + { + "PowerHint": "AUDIO_LAUNCH", + "Node": "PMQoSCpuDmaLatency", + "Duration": 2000, + "Value": "2c" + }, + { + "PowerHint": "AUDIO_STREAMING_LOW_LATENCY", + "Node": "PowerHALAudioState", + "Duration": 0, + "Value": "AUDIO_STREAMING_LOW_LATENCY" + }, + { + "PowerHint": "AUDIO_STREAMING_LOW_LATENCY", + "Node": "PMQoSCpuDmaLatency", + "Duration": 0, + "Value": "2c" + }, + { + "PowerHint": "EXPENSIVE_RENDERING", + "Node": "PowerHALRenderingState", + "Duration": 0, + "Value": "EXPENSIVE_RENDERING" + }, + { + "PowerHint": "EXPENSIVE_RENDERING", + "Node": "GPUMinFreq", + "Duration": 0, + "Value": "427000000" + }, + { + "PowerHint": "EXPENSIVE_RENDERING", + "Node": "GPUMaxFreq", + "Duration": 0, + "Value": "585000000" + }, + { + "PowerHint": "ML_ACC", + "Node": "PMQoSCpuDmaLatency", + "Duration": 2000, + "Value": "2c" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_50", + "Node": "CPULittleClusterMaxFreq", + "Duration": 3600000, + "Value": "844800" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_50", + "Node": "CPULittleClusterMinFreq", + "Duration": 3600000, + "Value": "576000" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_60", + "Node": "CPULittleClusterMaxFreq", + "Duration": 3600000, + "Value": "1036800" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_60", + "Node": "CPULittleClusterMinFreq", + "Duration": 3600000, + "Value": "576000" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_70", + "Node": "CPULittleClusterMaxFreq", + "Duration": 3600000, + "Value": "1209600" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_80", + "Node": "CPULittleClusterMaxFreq", + "Duration": 3600000, + "Value": "1382400" + }, + { + "PowerHint": "LOW_POWER_LITTLE_CLUSTER_90", + "Node": "CPULittleClusterMaxFreq", + "Duration": 3600000, + "Value": "1555200" + }, + { + "PowerHint": "LOW_POWER_CPU_50", + "Node": "CPUBigClusterMaxFreq", + "Duration": 3600000, + "Value": "1171200" + }, + { + "PowerHint": "LOW_POWER_CPU_50", + "Node": "CPUBigClusterMinFreq", + "Duration": 3600000, + "Value": "0" + }, + { + "PowerHint": "LOW_POWER_CPU_50", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 3600000, + "Value": "1401600" + }, + { + "PowerHint": "LOW_POWER_CPU_50", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 3600000, + "Value": "0" + }, + { + "PowerHint": "LOW_POWER_CPU_60", + "Node": "CPUBigClusterMaxFreq", + "Duration": 3600000, + "Value": "1497600" + }, + { + "PowerHint": "LOW_POWER_CPU_60", + "Node": "CPUBigClusterMinFreq", + "Duration": 3600000, + "Value": "0" + }, + { + "PowerHint": "LOW_POWER_CPU_60", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 3600000, + "Value": "1708800" + }, + { + "PowerHint": "LOW_POWER_CPU_60", + "Node": "CPUBigPlusClusterMinFreq", + "Duration": 3600000, + "Value": "0" + }, + { + "PowerHint": "LOW_POWER_CPU_70", + "Node": "CPUBigClusterMaxFreq", + "Duration": 3600000, + "Value": "1708800" + }, + { + "PowerHint": "LOW_POWER_CPU_70", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 3600000, + "Value": "2015999" + }, + { + "PowerHint": "LOW_POWER_CPU_80", + "Node": "CPUBigClusterMaxFreq", + "Duration": 3600000, + "Value": "1920000" + }, + { + "PowerHint": "LOW_POWER_CPU_80", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 3600000, + "Value": "2227200" + }, + { + "PowerHint": "LOW_POWER_CPU_90", + "Node": "CPUBigClusterMaxFreq", + "Duration": 3600000, + "Value": "2131200" + }, + { + "PowerHint": "LOW_POWER_CPU_90", + "Node": "CPUBigPlusClusterMaxFreq", + "Duration": 3600000, + "Value": "2534400" + } + ] +} diff --git a/device.mk b/device.mk index 724d121..aa34d38 100644 --- a/device.mk +++ b/device.mk @@ -47,6 +47,10 @@ PRODUCT_PACKAGES += \ SettingsOverlayDevice \ SystemUIOverlayDevice +# Power +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/etc/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json + # Sensors PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf