drivers: thermal: create kernel thermal readout

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

Signed-off-by: Bryan Smith <zarboz@gmail.com>
thermal: patch down msm_thermal, pre device

This also removes the cputable freq changes, which
we won't need since we use static values.

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

Signed-off-by: Bryan Smith <zarboz@gmail.com>
msm_thermal: 3-phase thermal throttling

This introduces 3-phase thermal throttling to the existing
msm_thermal driver (it now works more like thermald).
This also changes the sampling rate to check every second
for increased temperatures.
Additionally this adds clear thresholds for the 2 new tripping
points.

Signed-off-by: showp1984 <showp1984@gmail.com>
msm_thermal: add sysfs interface

This adds a sysfs interface to msm_thermal.
I've also restructured the tuneables into a struct
for better overview.

Signed-off-by: showp1984 <showp1984@gmail.com>
msm_thermal: move sysfs to /sys/kernel/msm_thermal/conf/

Signed-off-by: showp1984 <showp1984@gmail.com>
msm_thermal: fix saving pre-throttled freq

Signed-off-by: showp1984 <showp1984@gmail.com>
drivers/thermal: create own unbound (highpri) wq for msm_thermal

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/thermal: adapt msm_thermal for quadcore & mako

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/thermal: use config variable here

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/thermal: add emergency shutdown

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: emergency shutdown rework

additionally to initiating the shutdown the lowest possible
frequency should be set. (=max throttle atm)
update the cpufreq and do not cancel the workqueue
+ some small code improvements

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: set mid freq to 810Mhz

1026Mhz isn't cooling the device enough @max load

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: use temperature1 sensor too
The sensor1 seems to be cpu related too, and it usually
shows higher temps (~2°C). Use the higher value of both
to decide if thermal throttling is neccessary.

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: check every 100ms for thermal changes
Tests have shows that the apq8064 likes to jump from
~69°C to ~80°C within 250ms while overclocked.
schedule checks more often to avoid that.
Also increase shutdown temp to 81°C (+1).

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: do not wait, unthrottle now

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: remove not needed condition

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: fix clear thresholds

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: only update freq if new is not > than saved_max

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: rework throttling states

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
thermal: set cpus online to set frequency back to unthrottled

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>