mirror of
https://github.com/S3NEO/android_device_samsung_msm8226-common.git
synced 2024-11-06 21:55:45 +00:00
17591b33ae
PowerHAL highlights: * The CPU governor is always interactive. Governor changes are not expected and permissions are set once on boot. * Powersave profile: the CPU frequency is limited 787MHz and the CPU is never boosted on user interaction. This will save power without making the phone unbearably slow. * Performance profile: the CPU is constantly boosted. * Balanced profile: the CPU is boosted on user interaction. When the screen is turned off, the governor is tuned to lower the power consumption to save power in case of long lasting screen off activities such as music playback. * Currently there are no restrictions on the number of active cores. With this PowerHAL cpu-boost is not needed, so keep it disabled. In addition to that, drop all the properties based profiles and set config_perf_profile_prop to "powerhal" to make the framework send hints to PowerHAL when the power profile is changed. msm8226-common: PowerHAL: Initialize mutex Since the mutex is declared as static, this went unnoticed, but mutexes should always be initialized, so do it. msm8226-common: PowerHAL: Don't override user selected profiles Save and restore the last selected profile so that the user preference is not lost when transitioning out the low power mode. Also, don't actually change the profile if in low power mode, but don't discard the user preference. msm8226-common: Refactor PowerHAL Make the HAL generic by keeping the device dependent configuration separate. This allows to easily add or edit the profiles. The HAL should behave exactly as before, except for the fact that now there might be some useless writes when the screen is turned off. Change-Id: I6bb01a14f0058c59986989568e7766f4203150cc
89 lines
4.7 KiB
Text
89 lines
4.7 KiB
Text
# Copyright (c) 2009-2012, 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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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.
|
|
#
|
|
|
|
on enable-low-power
|
|
write /sys/module/lpm_levels/enable_low_power/l2 4
|
|
write /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled 1
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 0
|
|
|
|
write /sys/devices/system/cpu/cpu1/online 1
|
|
write /sys/devices/system/cpu/cpu2/online 1
|
|
write /sys/devices/system/cpu/cpu3/online 1
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 1
|
|
|
|
on charger
|
|
write /sys/module/lpm_levels/enable_low_power/l2 4
|
|
write /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled 1
|
|
write /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled 1
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 0
|
|
|
|
write /sys/devices/system/cpu/cpu1/online 1
|
|
write /sys/devices/system/cpu/cpu2/online 1
|
|
write /sys/devices/system/cpu/cpu3/online 1
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 1
|
|
|
|
write /sys/devices/system/cpu/cpu1/online 0
|
|
write /sys/devices/system/cpu/cpu2/online 0
|
|
write /sys/devices/system/cpu/cpu3/online 0
|
|
|
|
on boot
|
|
trigger enable-low-power
|
|
|
|
on property:init.svc.recovery=running
|
|
trigger enable-low-power
|