提交 f2b4caaf 编写于 作者: D Durgadoss R 提交者: Zhang Rui

Thermal: Add a notification API

This patch adds a notification API which the sensor drivers'
can use to notify the framework. The framework then takes
care of the throttling according to the configured policy.
Signed-off-by: NDurgadoss R <durgadoss.r@intel.com>
Signed-off-by: NZhang Rui <rui.zhang@intel.com>
上级 0c01ebbf
...@@ -1368,6 +1368,24 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev) ...@@ -1368,6 +1368,24 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev)
} }
EXPORT_SYMBOL(thermal_cdev_update); EXPORT_SYMBOL(thermal_cdev_update);
/**
* notify_thermal_framework - Sensor drivers use this API to notify framework
* @tz: thermal zone device
* @trip: indicates which trip point has been crossed
*
* This function handles the trip events from sensor drivers. It starts
* throttling the cooling devices according to the policy configured.
* For CRITICAL and HOT trip points, this notifies the respective drivers,
* and does actual throttling for other trip points i.e ACTIVE and PASSIVE.
* The throttling policy is based on the configured platform data; if no
* platform data is provided, this uses the step_wise throttling policy.
*/
void notify_thermal_framework(struct thermal_zone_device *tz, int trip)
{
handle_thermal_trip(tz, trip);
}
EXPORT_SYMBOL(notify_thermal_framework);
/** /**
* create_trip_attrs - create attributes for trip points * create_trip_attrs - create attributes for trip points
* @tz: the thermal zone device * @tz: the thermal zone device
......
...@@ -232,6 +232,7 @@ int get_tz_trend(struct thermal_zone_device *, int); ...@@ -232,6 +232,7 @@ int get_tz_trend(struct thermal_zone_device *, int);
struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
struct thermal_cooling_device *, int); struct thermal_cooling_device *, int);
void thermal_cdev_update(struct thermal_cooling_device *); void thermal_cdev_update(struct thermal_cooling_device *);
void notify_thermal_framework(struct thermal_zone_device *, int);
int thermal_register_governor(struct thermal_governor *); int thermal_register_governor(struct thermal_governor *);
void thermal_unregister_governor(struct thermal_governor *); void thermal_unregister_governor(struct thermal_governor *);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册