diff --git a/selfdrive/hardware/tici/hardware.py b/selfdrive/hardware/tici/hardware.py index 22c9abd8a..611c661ad 100644 --- a/selfdrive/hardware/tici/hardware.py +++ b/selfdrive/hardware/tici/hardware.py @@ -54,6 +54,11 @@ NetworkStrength = log.DeviceState.NetworkStrength MM_MODEM_ACCESS_TECHNOLOGY_UMTS = 1 << 5 MM_MODEM_ACCESS_TECHNOLOGY_LTE = 1 << 14 + +def sudo_write(val, path): + os.system(f"sudo su -c 'echo {val} > {path}'") + + class Tici(HardwareBase): @cached_property def bus(self): @@ -390,18 +395,16 @@ class Tici(HardwareBase): if not powersave_enabled: self.amplifier.initialize_configuration() + # *** CPU config *** + # offline big cluster, leave core 4 online for boardd for i in range(5, 8): - # TODO: fix permissions with udev val = "0" if powersave_enabled else "1" - os.system(f"sudo su -c 'echo {val} > /sys/devices/system/cpu/cpu{i}/online'") + sudo_write(val, f"/sys/devices/system/cpu/cpu{i}/online") for n in ('0', '4'): - gov = 'userspace' if powersave_enabled else 'performance' - os.system(f"sudo su -c 'echo {gov} > /sys/devices/system/cpu/cpufreq/policy{n}/scaling_governor'") - - if powersave_enabled: - os.system(f"sudo su -c 'echo 979200 > /sys/devices/system/cpu/cpufreq/policy{n}/scaling_setspeed'") + gov = 'ondemand' if powersave_enabled else 'performance' + sudo_write(gov, f"/sys/devices/system/cpu/cpufreq/policy{n}/scaling_governor") def get_gpu_usage_percent(self): try: @@ -416,9 +419,19 @@ class Tici(HardwareBase): # Allow thermald to write engagement status to kmsg os.system("sudo chmod a+w /dev/kmsg") + # *** GPU config *** + sudo_write("0", "/sys/class/kgsl/kgsl-3d0/min_pwrlevel") + sudo_write("0", "/sys/class/kgsl/kgsl-3d0/max_pwrlevel") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_bus_on") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_clk_on") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_rail_on") + sudo_write("1000000", "/sys/class/kgsl/kgsl-3d0/idle_timer") + sudo_write("performance", "/sys/class/kgsl/kgsl-3d0/devfreq/governor") + # setup governors - os.system("sudo su -c 'echo performance > /sys/class/devfreq/soc:qcom,memlat-cpu0/governor'") - os.system("sudo su -c 'echo performance > /sys/class/devfreq/soc:qcom,memlat-cpu4/governor'") + sudo_write("performance", "/sys/class/devfreq/soc:qcom,cpubw/governor") + sudo_write("performance", "/sys/class/devfreq/soc:qcom,memlat-cpu0/governor") + sudo_write("performance", "/sys/class/devfreq/soc:qcom,memlat-cpu4/governor") def get_networks(self): r = {}