Jitter Reducer Functions
Jitter Reducer Functions
/system/bin/sh
function forceOnlineCPUs()
{
local i st en
IFS="-" read st en <"/sys/devices/system/cpu/present"
if [ -n "$st" -a -n "$en" -a "$st" -ge 0 -a "$en" -ge 0 ]; then
for i in `seq $st $en`; do
if [ -e "/sys/devices/system/cpu/cpu$i/online" ]; then
chmod 644 "/sys/devices/system/cpu/cpu$i/online"
echo '1' >"/sys/devices/system/cpu/cpu$i/online"
fi
done
fi
}
function searchDefaultCpuGovernor()
{
# Search default CPU governor
local gov=""
local i
for i in `cat
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors`; do
if [ "$i" = "walt" -o "$i" = "sched_pixel" -o "$i" = "schedutil" ];
then
gov="$i"
break;
elif [ ! "$gov" = "schedplus" ]; then
if [ "$i" = "schedplus" ]; then
gov="$i"
elif [ ! "$gov" = "interactive" ]; then
gov="$i"
fi
fi
done
if [ -z "$gov" ]; then
gov="performance"
fi
echo "$gov"
}
function reduceSelinuxJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
fi
if [ $printStatus -gt 0 ]; then
echo " Selinux mode: `getenforce`"
fi
else
return 1
fi
}
function reduceThermalJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
fi
# MPDecision
if [ -n "`getprop init.svc.mpdecision`" ]; then
echo " Thermal MPDecision: `getprop init.svc.mpdecision`"
found=1
elif [ -n "`getprop init.svc.vendor.mpdecision`" ]; then
echo " Thermal MPDecision: `getprop init.svc.vendor.mpdecision`"
found=1
fi
else
return 1
fi
}
function reduceDozeJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
else
return 1
fi
}
function getQcomGpuFreq()
{
local isMax="0"
if [ -r "/sys/class/kgsl/kgsl-3d0/gpu_available_frequencies" -a -r
"/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ]; then
local tab x y freq=""
if [ -n "$freq" ]; then
echo "$freq"
return 0
else
return 1
fi
else
return 1
fi
}
function getMtkGpuFreqKhz()
{
local isMax="0"
if [ $# -eq 1 -a "$1" = "max" ]; then
isMax="1"
fi
if [ -r "/proc/gpufreq/gpufreq_opp_dump" ]; then
local x1 x2 x3 x4 x5 freq="" IFS=" ,"
if [ -n "$freq" ]; then
echo "$freq"
return 0
else
return 1
fi
else
return 1
fi
}
function getTensorGpuFreqKhz()
{
local isMax="0"
if [ -r "/sys/devices/platform/1c500000.mali/available_frequencies" ]; then
local tab x freq=""
if [ -n "$freq" ]; then
echo "$freq"
return 0
else
return 1
fi
else
return 1
fi
}
function isMtkGpuFreqFixed()
{
if [ -r "/proc/gpufreq/gpufreq_opp_freq" ]; then
local x1 x2 x3 x4 x5
read x1 x2 x3 x4 x5 <"/proc/gpufreq/gpufreq_opp_freq"
if [ "$x5" = "enabled" ]; then
return 0
else
return 1
fi
else
return 1
fi
}
function validGpuGovernor()
{
if [ $# -eq 2 -a -r "$1" ]; then
local lst
local gov="$2"
local i
lst="`cat <\"$1\"`"
for i in $lst; do
if [ "$i" = "$gov" ]; then
return 0
fi
done
return 1
else
return 1
fi
}
function reduceGovernorJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
# CPU governor
# prevent CPU offline stuck by forcing online between double governor
writing
local i st en x
IFS="-" read st en <"/sys/devices/system/cpu/present"
if [ -n "$st" -a -n "$en" -a "$st" -ge 0 -a "$en" -ge 0 ]; then
for i in `seq $st $en`; do
if [ -e
"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor" ]; then
chmod 644
"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
echo 'performance'
>"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
chmod 644 "/sys/devices/system/cpu/cpu$i/online"
echo '1' >"/sys/devices/system/cpu/cpu$i/online"
# Set the cpu max freq to the scaling_max_freq because some
devices sometimes set it to be lower
read x
<"/sys/devices/system/cpu/cpu$i/cpufreq/cpuinfo_max_freq"
chmod 644
"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq"
echo "$x"
>"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq"
echo 'performance'
>"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
fi
done
fi
# Support for the Nyx kernel and others; Disable a workqueue power
efficient featute
if [ -e "/sys/module/workqueue/parameters/power_efficient" ]; then
chmod 644 "/sys/module/workqueue/parameters/power_efficient"
echo 'N' >"/sys/module/workqueue/parameters/power_efficient"
fi
# GPU's
if [ -w "/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor" ]; then
# For old Qcomm GPU's
echo 'performance'
>"/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor"
if [ -w "/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ]; then
# Set the min power level to be maximum
read x <"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
if [ "$x" -ne 0 ]; then
echo "0" >"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
fi
fi
elif [ -w "/sys/class/kgsl/kgsl-3d0/devfreq/governor" ]; then
# For Qcomm GPU's
if validGpuGovernor
"/sys/class/kgsl/kgsl-3d0/devfreq/available_governors" "performance"; then
# Check whether "performance" governor exists or not because
some Qcomm recent GPU's don't have the governor
echo 'performance' >"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
sleep 0.1
fi
if [ -w "/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ]; then
# Set the min power level to be maximum
read x <"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
if [ "$x" -ne 0 ]; then
echo "0" >"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
fi
fi
# For some Qcomm GPU's, because they revert the governor after
setting min_pwrlevel several times
if validGpuGovernor
"/sys/class/kgsl/kgsl-3d0/devfreq/available_governors" "performance"; then
for i in `seq 1 9`; do
x="`echo \"scale=1;${i}/10\" | bc`"
sleep $x
read x <"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
if [ "$x" = "performance" ]; then
break
fi
echo 'performance'
>"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
done
fi
elif [ -w "/proc/gpufreq/gpufreq_opp_freq" ]; then
# Maximum fixed frequency setting for MediaTek GPU's
local freq="`getMtkGpuFreqKhz \"max\"`"
if [ -n "$freq" ]; then
echo "$freq" >"/proc/gpufreq/gpufreq_opp_freq"
fi
elif [ -w "/sys/devices/platform/1c500000.mali/scaling_min_freq" ];
then
# Maximum fixed frequency setting for Tensor GPU's
local freq="`getTensorGpuFreqKhz \"max\"`"
if [ -n "$freq" ]; then
echo "$freq"
>"/sys/devices/platform/1c500000.mali/scaling_min_freq"
fi
fi
# CPU's governor
local gov="`searchDefaultCpuGovernor`"
# prevent CPU offline stuck by forcing online between double governor
writing
local ist en
IFS="-"read st en <"/sys/devices/system/cpu/present"
if [ -n"$st" -a -n "$en" -a "$st" -ge 0 -a "$en" -ge 0 ]; then
fori in `seq $st $en`; do
if [ -e
"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor" ]; then
chmod 644
"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
echo "$gov"
>"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
chmod 644 "/sys/devices/system/cpu/cpu$i/online"
echo '1' >"/sys/devices/system/cpu/cpu$i/online"
echo "$gov"
>"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
fi
done
fi
# Support for the Nyx kernel and others; Revert a workqueue power
efficient featute
if [ -e "/sys/module/workqueue/parameters/power_efficient" ]; then
chmod 644 "/sys/module/workqueue/parameters/power_efficient"
echo 'Y' >"/sys/module/workqueue/parameters/power_efficient"
fi
# GPU's
if [ -w "/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor" ]; then
# Default GPU governor for old Qcomm GPU's
if [ "`getprop ro.build.product`" = "jfltexx" -a "`getprop
ro.system.build.version.release`" -ge "12" ]; then
echo 'performance'
>"/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor"
else
echo 'ondemand'
>"/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor"
fi
if [ -r "/sys/class/kgsl/kgsl-3d0/num_pwrlevels" -a -w
"/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ]; then
# Set the min power level to be minimum
local x="4"
local tmp
read x <"/sys/class/kgsl/kgsl-3d0/num_pwrlevels"
x="`expr $x - 1`"
if [ -n "$x" ]; then
read tmp <"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
if [ "$tmp" -ne "$x" ]; then
echo "$x" >"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
fi
fi
fi
elif [ -w "/sys/class/kgsl/kgsl-3d0/devfreq/governor" ]; then
# Default GPU governor for Qcomm GPU's
echo 'msm-adreno-tz' >"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
sleep 0.1
if [ -r "/sys/class/kgsl/kgsl-3d0/num_pwrlevels" -a -w
"/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ]; then
# Set the min power level to be minimum
local x="6"
local tmp
read x <"/sys/class/kgsl/kgsl-3d0/num_pwrlevels"
x="`expr $x - 1`"
if [ -n "$x" ]; then
read tmp <"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
if [ "$tmp" -ne "$x" ]; then
echo "$x" >"/sys/class/kgsl/kgsl-3d0/min_pwrlevel"
fi
fi
fi
# For some Qcomm GPU's, because they revert the governor after
setting min_pwrlevel several times
for i in `seq 1 9`; do
x="`echo \"scale=1;${i}/10\" | bc`"
sleep $x
read x <"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
if [ "$x" = "msm-adreno-tz" ]; then
break
fi
echo 'msm-adreno-tz'
>"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
done
elif [ -w "/proc/gpufreq/gpufreq_opp_freq" ]; then
# Variable frequency setting for MediaTek GPU's
echo '0' >"/proc/gpufreq/gpufreq_opp_freq"
elif [ -w "/sys/devices/platform/1c500000.mali/scaling_min_freq" ];
then
# Minimum fixed frequency setting for Tensor GPU's
local freq="`getTensorGpuFreqKhz \"min\"`"
if [ -n "$freq" ]; then
echo "$freq"
>"/sys/devices/platform/1c500000.mali/scaling_min_freq"
fi
fi
fi
if [ -r "/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor" ]; then
# For old Qcomm GPU Governor
local freq gov
read gov <"/sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor"
if [ "$gov" = "performance" ]; then
freq="`getQcomGpuFreq \"max\"`"
freq="`expr $freq / 1000000`MHz"
echo " Governor GPU: performance (fixed: $freq)"
else
freq="`getQcomGpuFreq \"typical\"`"
freq="`expr $freq / 1000000`Mhz"
echo " Governor GPU: $gov (typical: $freq)"
fi
elif [ -w "/sys/class/kgsl/kgsl-3d0/devfreq/governor" ]; then
# For Qcomm GPU Governor
local freq gov
read gov <"/sys/class/kgsl/kgsl-3d0/devfreq/governor"
if [ "$gov" = "performance" ]; then
freq="`getQcomGpuFreq \"max\"`"
freq="`expr $freq / 1000000`MHz"
echo " Governor GPU: performance (fixed: $freq)"
else
freq="`getQcomGpuFreq \"typical\"`"
freq="`expr $freq / 1000000`MHz"
echo " Governor GPU: $gov (typical: $freq)"
fi
elif [ -r "/proc/gpufreq/gpufreq_opp_freq" ]; then
# For getting MediaTek GPU settings
local freq
if isMtkGpuFreqFixed; then
freq="`getMtkGpuFreqKhz \"max\"`"
freq="`expr $freq / 1000`MHz"
echo " Governor GPU: max freq (fixed: $freq)"
else
freq="`getMtkGpuFreqKhz \"typical\"`"
freq="`expr $freq / 1000`MHz"
echo " Governor GPU: variable freq (typical: $freq)"
fi
elif [ -r "/sys/devices/platform/1c500000.mali/cur_freq" ]; then
# Get the current Tensor GPU frequency
local freq="`getTensorGpuFreqKhz`"
if [ "$freq" = "`getTensorGpuFreqKhz \"max\"`" ]; then
freq="`expr $freq / 1000`MHz"
echo " Governor GPU: max freq (fixed: $freq)"
else
freq="`expr $freq / 1000`MHz"
echo " Governor GPU: variable freq (typical: $freq)"
fi
fi
fi
else
return 1
fi
}
function reduceLogdJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
fi
else
return 1
fi
}
function reduceCameraJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
else
return 1
fi
}
# choose the best I/O scheduler for very Hifi audio outputs, and output it into the
standard output
function chooseBestIOScheduler()
{
if [ $# -eq 1 -a -r "$1" ]; then
local x scheds ret_val=""
function selectedScheduler()
{
if [ $# -eq 1 -a -r "$1" ]; then
local sched="`cat \"$1\"`"
if [ -n "$sched" ]; then
local val
val=`expr "$sched" : '[^[]*\[\([^]]*\)\]'`
echo "$val"
return 0
else
return 1
fi
else
return 1
fi
}
function validScheduler()
{
if [ $# -eq 2 -a -r "$1" ]; then
local lst
local sched="$2"
local i
lst="`tr -d '[]' <\"$1\"`"
for i in $lst; do
if [ "$i" = "$sched" ]; then
return 0
fi
done
return 1
else
return 1
fi
}
function nth()
{
if [ $# -eq 2 -a -n "$1" ]; then
local v
local i=1
for v in $1; do
if [ "$2" -eq "$i" ]; then
echo "$v"
return 0
else
i="`expr $i + 1`"
fi
done
return 1
else
retrun 1
fi
else
return 1
fi
}
function getSocModelName()
{
local modelName="`getprop ro.board.platform`"
case "$modelName" in
sd* | msm* | exynos* | mt* | gs* )
echo "$modelName"
return 0
;;
zuma* )
echo "gs301"
return 0
;;
* )
case "`getprop ro.boot.hardware`" in
qcom )
# High performance Qcomm SoC devices tend to have code
names
# (not real SoC name, but compatible name in this library)
case "$modelName" in
"kona" | "kalama" | "shima" | "yupik" )
echo "sdm870"
;;
"bengal" )
echo "sdm680"
;;
"holi" )
echo "sdm680"
;;
"pineapple" )
echo "sm8635"
;;
* )
if [ -r
"/sys/devices/system/cpu/cpu7/core_ctl/enable" ]; then
echo "sdm855"
else
echo "sdm845"
fi
;;
esac
return 0
;;
* )
echo "unknown"
return 0
;;
esac
;;
esac
return 1
}
function adjustForSoC()
{
if [ $# -eq 1 -a -n "$1" -a "$1" -ge 0 ]; then
case "`getSocModelName`" in
sdm* | msm* | sd* | exynos* )
echo "`expr '(' $1 / 10 ')' '*' 10 + '(' '(' $1 % 10 ')' / 3 ')'
'*' 3`"
;;
mt6* )
echo "`expr '(' '(' $1 + 1 ')' / 4 ')' '*' 4`"
;;
* )
echo "$1"
;;
esac
return 0
else
return 1
fi
}
function adjustForSoC_mq()
{
if [ $# -eq 1 -a -n "$1" -a "$1" -ge 0 ]; then
local kername="`uname -r`"
kername=${kername#*-}
case "$kername" in
perf* | android* )
# Round to multiples of 4; for Xiaomi Bengal and Google kernels
echo "`expr '(' '(' $1 + 2 ')' / 4 ')' '*' 4`"
return 0
;;
SouthWest* | Nyx* )
# for Nyx and SouthWest kernels (100Hz)
if [ "$1" -ge 250 ]; then
# Round off (<7) and up (>=7)
echo "`expr '(' '(' $1 + 3 ')' / 10 ')' '*' 10`"
else
# Round down
echo "`expr '(' '(' $1 + 0 ')' / 10 ')' '*' 10`"
fi
return 0
;;
* )
if [ "`getprop ro.build.product`" = "clover" -a "`getprop
ro.build.version.release`" -ge "14" ]; then
# Not Round for A14 and later (1000Hz kernels)
echo "$1"
else
adjustForSoC "$1"
fi
return 0
;;
esac
return 0
else
return 1
fi
}
function adjustSchedulerParameter()
{
if [ $# -eq 3 ]; then
else
return 1
fi
}
function getSchedulerParams()
{
if [ $# -eq 1 ]; then
case "$1" in
"deadline" | "mq-deadline" )
echo "fifo_batch front_merges read_expire write_expire
writes_starved"
;;
"cfq" )
echo "back_seek_penalty fifo_expire_async fifo_expire_sync
group_idle low_latency quantum slice_async slice_async_rq \
slice_async_us slice_idle slice_sync target_latency"
;;
"kyber" )
echo "read_lat_nsec write_lat_nsec"
;;
"noop" | "none" | * )
echo ""
;;
esac
return 0
else
return 1
fi
}
function getSchedulerValues()
{
if [ $# -eq 2 ]; then
case "$1" in
"deadline" | "mq-deadline" )
# fifo_batch front_merges read_expire write_expire writes_starved
case "$2" in
"light" )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
echo "71 0 28 496 0"
;;
sdm8* )
echo "73 0 24 484 0"
;;
* )
echo "64 0 32 504 0"
;;
esac
;;
"m-light" )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
echo "92 0 36 516 0"
;;
sdm8* )
echo "92 0 36 516 0"
;;
sdm* | msm* | sd* | exynos* )
echo "92 0 36 516 0"
;;
mt68* )
echo "92 0 36 516 0"
;;
mt67[7-9]? )
echo "92 0 36 516 0"
;;
* )
echo "92 0 36 516 0"
;;
esac
;;
"boost" )
case "`getSocModelName`" in
sm[6-8]* )
# for the stock kernel
echo "119 0 36 516 0"
# for the ISIS kernel
# echo "117 0 36 516 0"
;;
sdm8[5-9]* | sdm9* )
echo "107 0 36 516 0"
;;
gs* )
echo "112 0 36 516 0"
;;
sdm8* )
echo "107 0 36 516 0"
;;
sdm* | msm* | sd* | exynos* )
echo "107 0 38 517 0"
;;
mt68* )
echo "107 0 36 516 0"
;;
mt67[7-9]? )
echo "107 0 36 516 0"
;;
* )
echo "107 0 36 516 0"
;;
esac
;;
"medium" | *)
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* )
echo "96 0 36 516 0"
;;
gs* )
echo "96 0 36 516 0"
;;
sdm8* )
echo "96 0 36 516 0"
;;
sdm* | msm* | sd* | exynos* )
echo "96 0 38 517 0"
;;
mt68* )
echo "96 0 36 516 0"
;;
mt67[7-9]? )
echo "96 0 36 516 0"
;;
* )
echo "96 0 36 516 0"
;;
esac
;;
esac
;;
"cfq" )
# back_seek_penalty fifo_expire_async fifo_expire_sync group_idle
low_latency quantum slice_async slice_async_rq
# slice_async_us slice_idle slice_sync target_latency
case "$2" in
"light" )
echo "1 3 3 0 1 1 3 34 3000 0 3 3"
;;
"m-light" )
echo "1 3 3 0 1 1 3 46 3000 0 3 3"
;;
"boost" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | mt68* | gs* | sd* | exynos* )
echo "1 1 1 0 1 1 0 77 877 0 1 1"
;;
* )
echo "1 3 3 0 1 1 3 59 3000 0 3 3"
;;
esac
;;
"medium" | * )
case "`getSocModelName`" in
sm[6-8]* | sdm* | mt68* | gs* | sd* | exynos* )
echo "1 1 1 0 1 1 0 66 901 0 1 1"
;;
* )
echo "1 3 3 0 1 1 3 51 3000 0 3 3"
;;
esac
;;
esac
;;
"kyber" )
# read_lat_nsec write_lat_nsec
echo "1000001 1000001"
;;
"noop" | "none" | * )
echo ""
;;
esac
return 0
else
return 1
fi
}
function getSchedulerNrRequests()
{
if [ $# -eq 2 ]; then
case "$1" in
"mq-deadline" | "kyber" | "bfq" )
echo "2031"
;;
"none" )
echo "31"
;;
"deadline" )
case "$2" in
"light" )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
echo "80645"
;;
sdm8* )
echo "80000"
;;
sdm* | msm* | sd* | exynos* )
echo "81660"
;;
* )
echo "78550"
;;
esac
;;
"m-light" )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
echo "86170"
;;
sdm8* )
echo "86164"
;;
sdm* | msm* | sd* | exynos* )
echo "86170"
;;
mt68* )
echo "86174"
;;
mt67[6-9]? )
echo "86172"
;;
* )
echo "86172"
;;
esac
;;
"boost" )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* )
echo "86170"
;;
gs* )
echo "86164"
;;
sdm8* )
echo "86174"
;;
sdm* | msm* | sd* | exynos* )
echo "86172"
;;
mt68* )
echo "86174"
;;
mt67[7-9]? )
echo "86172"
;;
* )
echo "86172"
;;
esac
;;
"medium" | * )
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
echo "86170"
;;
sdm8* )
echo "86164"
;;
sdm* | msm* | sd* | exynos* )
echo "86172"
;;
mt68* )
echo "86174"
;;
mt67[6-9]? )
echo "86172"
;;
* )
echo "86172"
;;
esac
;;
esac
;;
"cfq" )
case "$2" in
"light" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86021"
;;
* )
echo "86021"
;;
esac
;;
"m-light" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86117"
;;
* )
echo "86117"
;;
esac
;;
"boost" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86172"
;;
* )
echo "86172"
;;
esac
;;
"medium" | * )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86164"
;;
* )
echo "86164"
;;
esac
;;
esac
;;
"noop" | * )
case "$2" in
"light" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "80645"
;;
* )
echo "80645"
;;
esac
;;
"m-light" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86021"
;;
* )
echo "86021"
;;
esac
;;
"boost" )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86172"
;;
* )
echo "86172"
;;
esac
;;
"medium" | * )
case "`getSocModelName`" in
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
echo "86164"
;;
* )
echo "86164"
;;
esac
;;
esac
;;
esac
return 0
else
return 1
fi
}
function reduceIoJitter()
{
if [ $# -eq 4 ]; then
local flag="$1"
local ioScheduler="$2"
local toneMode="$3"
local printStatus="$4"
params="`getSchedulerParams \"$sched\"`"
vals="`getSchedulerValues \"$sched\" \"$toneMode\"`"
j=1
for p in $params; do
v="`nth \"$vals\" \"$j\"`"
v="`adjustSchedulerParameter \"$sched\" \"$p\" \"$v\"`"
if [ -w "/sys/block/$i/queue/iosched/$p" -a -n "$v"
-a "$v" -ge 0 ]; then
echo "$v" >"/sys/block/$i/queue/iosched/$p"
fi
j="`expr $j + 1`"
done
else
fi
fi
done
case "`getSocModelName`" in
sm[6-8]* | sdm8[5-9]* | sdm9* | sdm66* )
echo '512' >"/sys/block/$i/queue/read_ahead_kb"
echo '128' >"/sys/block/$i/queue/nr_requests"
;;
gs* )
echo '128' >"/sys/block/$i/queue/read_ahead_kb"
echo '64' >"/sys/block/$i/queue/nr_requests"
;;
* )
if [ "`getprop ro.build.product`" = "jfltexx" -a
"`getprop ro.system.build.version.release`" -ge "12" ]; then
echo '512' >"/sys/block/$i/queue/read_ahead_kb"
else
echo '128' >"/sys/block/$i/queue/read_ahead_kb"
fi
fi
else
return 1
fi
}
function reduceVmJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
fi
else
return 1
fi
}
function reloadAudioserver()
{
# wait for system boot completion and audiosever boot up
local i
for i in `seq 1 3` ; do
if [ "`getprop sys.boot_completed`" = "1" -a -n "`getprop
init.svc.audioserver`" ]; then
break
fi
sleep 0.9
done
else
echo "audioserver is not found!" 1>&2
return 1
fi
}
function which_resetprop_command()
{
type resetprop 1>"/dev/null" 2>&1
if [ $? -eq 0 ]; then
echo "resetprop"
else
type resetprop_phh 1>"/dev/null" 2>&1
if [ $? -eq 0 ]; then
echo "resetprop_phh"
else
return 1
fi
fi
return 0
}
function reduceEffectJitter()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
local val
val="`getprop init.svc.aocd`"
if [ -n "$val" ]; then
echo " Effects AOC server: $val"
fi
fi
return 0
else
return 1
fi
}
function restartWifi()
{
local val="`settings get global wifi_on`"
function reduceWifiJitter ()
{
if [ $# -eq 3 ]; then
local flag="$1"
local restartFlag="$2"
local printStatus="$3"
fi
else
return 1
fi
}
function reduceBatteryJitter ()
{
if [ $# -eq 2 ]; then
local flag="$1"
local printStatus="$2"
if [ $flag -gt 0 ]; then
fi
else
return 1
fi
}