#!/system/bin/sh

busybox="/data/data/com.paget96.lsandroid/files/binary/busybox"
log="/data/data/com.paget96.lsandroid/files/log/mainLog"
date="[$($busybox date +"%H:%M:%S %d-%m-%Y")]"

$busybox echo "$date Optimizing GPU..." >>$log

# GPU related tweaks
if [ -d "/sys/class/kgsl/kgsl-3d0" ]; then
  gpu="/sys/class/kgsl/kgsl-3d0"
elif [ -d "/sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0" ]; then
  gpu="/sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0"
elif [ -d "/sys/devices/soc/*.qcom,kgsl-3d0/kgsl/kgsl-3d0" ]; then
  gpu="/sys/devices/soc/*.qcom,kgsl-3d0/kgsl/kgsl-3d0"
elif [ -d "/sys/devices/soc.0/*.qcom,kgsl-3d0/kgsl/kgsl-3d0" ]; then
  gpu="/sys/devices/soc.0/*.qcom,kgsl-3d0/kgsl/kgsl-3d0"
elif [ -d "/sys/devices/platform/*.gpu/devfreq/*.gpu" ]; then
  gpu="/sys/devices/platform/*.gpu/devfreq/*.gpu"
elif [ -d "/sys/devices/platform/gpusysfs" ]; then
  gpu="/sys/devices/platform/gpusysfs"
elif [ -d "/sys/devices/*.mali" ]; then
  gpu="/sys/devices/*.mali"
elif [ -d "/sys/devices/*.gpu" ]; then
  gpu="/sys/devices/*.gpu"
elif [ -d "/sys/devices/platform/mali.0" ]; then
  gpu="/sys/devices/platform/mali.0"
elif [ -d "/sys/devices/platform/mali-*.0" ]; then
  gpu="/sys/devices/platform/mali-*.0"
elif [ -d "/sys/module/mali/parameters" ]; then
  gpu="/sys/module/mali/parameters"
elif [ -d "/sys/class/misc/mali0" ]; then
  gpu="/sys/class/misc/mali0"
elif [ -d "/sys/kernel/gpu" ]; then
  gpu="/sys/kernel/gpu"
fi

if [ -e /proc/gpufreq/gpufreq_limited_thermal_ignore ]; then
  $busybox echo "1" >/proc/gpufreq/gpufreq_limited_thermal_ignore
  $busybox echo "$date Disabled gpufreq thermal" >>$log
fi

if [ -e /proc/mali/dvfs_enable ]; then
  $busybox echo "1" >/proc/mali/dvfs_enable
  $busybox echo "$date dvfs enabled" >>$log
fi

if [ -e /sys/module/simple_gpu_algorithm/parameters/simple_gpu_activate ]; then
  $busybox echo "1" >/sys/module/simple_gpu_algorithm/parameters/simple_gpu_activate
  $busybox echo "Y" >/sys/module/simple_gpu_algorithm/parameters/simple_gpu_activate
  $busybox echo "$date Simple GPU algorithm enabled" >>$log
fi

# Adreno idler
if [ -e /sys/module/adreno_idler/parameters/adreno_idler_active ]; then
  $busybox echo "Y" >/sys/module/adreno_idler/parameters/adreno_idler_active
  $busybox echo "6000" >/sys/module/adreno_idler/parameters/adreno_idler_idleworkload
  $busybox echo "15" >/sys/module/adreno_idler/parameters/adreno_idler_downdifferential
  $busybox echo "15" >/sys/module/adreno_idler/parameters/adreno_idler_idlewait
  $busybox echo "$date Disabled adreno idler" >>$log
fi

if [ -e $gpu/devfreq/adrenoboost ]; then
  echo "2" >$gpu/devfreq/adrenoboost
  echo "$date Adreno boost is set to 2" >>$log
fi

if [ -e $gpu/throttling ]; then
  $busybox echo "0" >$gpu/throttling
  $busybox echo "$date GPU throttling disabled" >>$log
fi

if [ -e $gpu/max_pwrlevel ]; then
  $busybox echo "0" >$gpu/max_pwrlevel
  $busybox echo "$date GPU max power level disabled" >>$log
fi

if [ -e $gpu/force_no_nap ]; then
  $busybox echo "1" >$gpu/force_no_nap
  $busybox echo "$date force_no_nap enabled" >>$log
fi

if [ -e $gpu/bus_split ]; then
  $busybox echo "0" >$gpu/bus_split
  $busybox echo "$date bus_split disabled" >>$log
fi

if [ -e $gpu/force_bus_on ]; then
  $busybox echo "1" >$gpu/force_bus_on
  $busybox echo "$date force_bus_on enabled" >>$log
fi

if [ -e $gpu/force_clk_on ]; then
  $busybox echo "1" >$gpu/force_clk_on
  $busybox echo "$date force_clk_on enabled" >>$log
fi

if [ -e $gpu/force_rail_on ]; then
  $busybox echo "1" >$gpu/force_rail_on
  $busybox echo "$date force_rail_on enabled" >>$log
fi

$busybox echo "$date GPU is optimized..." >>$log
