forked from Minki/linux
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: Durgadoss R <durgadoss.r@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
0c01ebbfd3
commit
f2b4caafd4
@ -1368,6 +1368,24 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev)
|
||||
}
|
||||
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
|
||||
* @tz: the thermal zone device
|
||||
|
@ -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_cooling_device *, int);
|
||||
void thermal_cdev_update(struct thermal_cooling_device *);
|
||||
void notify_thermal_framework(struct thermal_zone_device *, int);
|
||||
|
||||
int thermal_register_governor(struct thermal_governor *);
|
||||
void thermal_unregister_governor(struct thermal_governor *);
|
||||
|
Loading…
Reference in New Issue
Block a user