On Fri, 2013-03-22 at 17:13 -0400, Eduardo Valentin wrote:For boards that provide a PCB sensor close to SoC junction
temperature, it is possible to remove the cumulative heat
reported by the SoC temperature sensor.
This patch changes the extrapolation computation to consider
an external sensor in the extrapolation equations.
Signed-off-by: Eduardo Valentin <eduardo.valentin@xxxxxx>
---
drivers/staging/ti-soc-thermal/ti-thermal-common.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/ti-soc-thermal/ti-thermal-common.c b/drivers/staging/ti-soc-thermal/ti-thermal-common.c
index 231c549..52d3c1b 100644
--- a/drivers/staging/ti-soc-thermal/ti-thermal-common.c
+++ b/drivers/staging/ti-soc-thermal/ti-thermal-common.c
@@ -92,10 +92,9 @@ static inline int ti_thermal_get_temp(struct thermal_zone_device *thermal,
if (ret)
return ret;
- pcb_temp = 0;
- /* TODO: Introduce pcb temperature lookup */
+ ret = thermal_zone_lookup_temperature("pcb", &pcb_temp);
/* In case pcb zone is available, use the extrapolation rule with it */
- if (pcb_temp) {
+ if (!ret) {
tmp -= pcb_temp;
slope = s->slope_pcb;
constant = s->constant_pcb;
I can not see this piece of code.
But I assume that the thermal_zone_device is registered in another
driver, right?
or else you can use the thermal_zone_device pointer directly instead.
thanks,
rui