mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
thermal: core: Introduce thermal_zone_device_exec()
Introduce a new helper function, thermal_zone_device_exec(), that can be used by drivers to run a given callback routine under the zone lock. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
bc840ea5f9
commit
9a99a996d1
@ -497,6 +497,25 @@ void thermal_zone_device_update(struct thermal_zone_device *tz,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(thermal_zone_device_update);
|
||||
|
||||
/**
|
||||
* thermal_zone_device_exec - Run a callback under the zone lock.
|
||||
* @tz: Thermal zone.
|
||||
* @cb: Callback to run.
|
||||
* @data: Data to pass to the callback.
|
||||
*/
|
||||
void thermal_zone_device_exec(struct thermal_zone_device *tz,
|
||||
void (*cb)(struct thermal_zone_device *,
|
||||
unsigned long),
|
||||
unsigned long data)
|
||||
{
|
||||
mutex_lock(&tz->lock);
|
||||
|
||||
cb(tz, data);
|
||||
|
||||
mutex_unlock(&tz->lock);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(thermal_zone_device_exec);
|
||||
|
||||
static void thermal_zone_device_check(struct work_struct *work)
|
||||
{
|
||||
struct thermal_zone_device *tz = container_of(work, struct
|
||||
|
@ -323,6 +323,10 @@ int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
|
||||
struct thermal_cooling_device *);
|
||||
void thermal_zone_device_update(struct thermal_zone_device *,
|
||||
enum thermal_notify_event);
|
||||
void thermal_zone_device_exec(struct thermal_zone_device *tz,
|
||||
void (*cb)(struct thermal_zone_device *,
|
||||
unsigned long),
|
||||
unsigned long data);
|
||||
|
||||
struct thermal_cooling_device *thermal_cooling_device_register(const char *,
|
||||
void *, const struct thermal_cooling_device_ops *);
|
||||
|
Loading…
Reference in New Issue
Block a user