diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 72e6a9a67d3e..52e24ba45fc9 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -402,6 +402,20 @@ int thermal_sensor_trip(struct thermal_zone_device *tz, } EXPORT_SYMBOL(thermal_sensor_trip); +int sensor_get_temp(uint32_t sensor_id, long *temp) +{ + struct sensor_info *sensor = get_sensor(sensor_id); + int ret = 0; + + if (!sensor) + return -ENODEV; + + ret = sensor->tz->ops->get_temp(sensor->tz, temp); + + return ret; +} +EXPORT_SYMBOL(sensor_get_temp); + int sensor_activate_trip(uint32_t sensor_id, struct sensor_threshold *threshold, bool enable) { diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 89de2ca82974..af10c703601b 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -447,6 +447,8 @@ struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, struct thermal_cooling_device *, int); void thermal_cdev_update(struct thermal_cooling_device *); void thermal_notify_framework(struct thermal_zone_device *, int); + +int sensor_get_temp(uint32_t sensor_id, long *temp); int sensor_get_id(char *name); int sensor_set_trip(uint32_t sensor_id, struct sensor_threshold *threshold); int sensor_cancel_trip(uint32_t sensor_id, struct sensor_threshold *threshold); @@ -528,6 +530,8 @@ static inline int sensor_cancel_trip(uint32_t sensor_id, static inline int thermal_sensor_trip(struct thermal_zone_device *tz, enum thermal_trip_type trip, unsigned long temp) { return -ENODEV;} +static inline int sensor_get_temp(uint32_t sensor_id, long *temp) +{ return -ENODEV;} #endif /* CONFIG_THERMAL */