Hi Amit, On Fri, Jul 26, 2019 at 04:40:16PM +0530, Amit Kucheria wrote: > > The device tree nodes appear in sysfs: > > > > / # ls -1 /sys/class/thermal/ > > cooling_device0 > > cooling_device1 > > thermal_zone0 > > thermal_zone1 > > thermal_zone2 > > thermal_zone3 > > thermal_zone4 > > thermal_zone5 > > thermal_zone6 > > thermal_zone7 > > thermal_zone8 > > thermal_zone9 > > Looks good. What are the contents of the files inside the two > cooling_device directories? The output of the following command would > be nice: > > $ grep "" cooling_device?/* /sys/class/thermal # grep "" cooling_device?/* cooling_device0/cur_state:100000 cooling_device0/max_state:2500000 cooling_device0/type:smbb-usbin cooling_device1/cur_state:500000 cooling_device1/max_state:2500000 cooling_device1/type:smbb-dcin > > The various temperatures were in the upper 40s and I threw some work at > > all four CPU cores to warm up the phone and watched the various > > temperatures rise: > > > > / # for i in $(seq 0 9) ; do > > > TYPE=$(cat /sys/class/thermal/thermal_zone$i/type) > > > TEMP=$(cat /sys/class/thermal/thermal_zone$i/temp) > > > echo "$TYPE = $TEMP" > > > done > > cpu-thermal0 = 66000 > > cpu-thermal1 = 66000 > > cpu-thermal2 = 66000 > > cpu-thermal3 = 66000 > > q6-dsp-thermal = 60000 > > modemtx-thermal = 57000 > > video-thermal = 61000 > > wlan-thermal = 65000 > > gpu-thermal-top = 61000 > > gpu-thermal-bottom = 59000 > > > > To test the interrupt support, I lowered all of the temperature trips to > > 51C but I'm not sure where to read that notification. I assume one of > > the cooling devices or a governor should be started? Sorry but I haven't > > done any work in the thermal subsystem yet and I'm short on time this > > morning to investigate right now. > > For now, just checking if the tsens interrupt in /proc/interrupts > fires should be fine. I have another patch to add some information to > debugs that I'll send at some point. An interrupt fires as each thermal zone exceeds the trip temperature and an interrupt fires again when it goes below that temperature. Here's my new test script: for i in $(seq 0 9) ; do TYPE=$(cat /sys/class/thermal/thermal_zone$i/type) TEMP=$(cat /sys/class/thermal/thermal_zone$i/temp) TRIP=$(cat /sys/class/thermal/thermal_zone$i/trip_point_0_temp) echo "$TYPE = $TEMP. trip = $TRIP" done # Warm the phone up /sys/class/thermal # /temp.sh cpu-thermal0 = 57000. trip = 51000 cpu-thermal1 = 56000. trip = 51000 cpu-thermal2 = 57000. trip = 51000 cpu-thermal3 = 56000. trip = 51000 q6-dsp-thermal = 51000. trip = 51000 modemtx-thermal = 49000. trip = 51000 video-thermal = 53000. trip = 51000 wlan-thermal = 55000. trip = 51000 gpu-thermal-top = 53000. trip = 51000 gpu-thermal-bottom = 52000. trip = 51000 /sys/class/thermal # grep tsens /proc/interrupts 27: 8 0 0 0 GIC-0 216 Level tsens # Let the phone cool off /sys/class/thermal # /temp.sh cpu-thermal0 = 48000. trip = 51000 cpu-thermal1 = 48000. trip = 51000 cpu-thermal2 = 49000. trip = 51000 cpu-thermal3 = 48000. trip = 51000 q6-dsp-thermal = 47000. trip = 51000 modemtx-thermal = 45000. trip = 51000 video-thermal = 48000. trip = 51000 wlan-thermal = 48000. trip = 51000 gpu-thermal-top = 48000. trip = 51000 gpu-thermal-bottom = 47000. trip = 51000 /sys/class/thermal # grep tsens /proc/interrupts 27: 19 0 0 0 GIC-0 216 Level tsens > How well does cpufreq work on 8974? I haven't looked at it yet but > we'll need it for thermal throttling. I'm not sure how to tell if the frequency is dynamically changed during runtime on arm. x86-64 shows this information in /proc/cpuinfo. Here's the /proc/cpuinfo on the Nexus 5: /sys/class/thermal # cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 evtstrm CPU implementer : 0x51 CPU architecture: 7 CPU variant : 0x2 CPU part : 0x06f CPU revision : 0 # 3 more CPUs like 0.... Hardware : Generic DT based system Revision : 0000 Serial : 0000000000000000 Brian