mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
thermal: Add mode helpers
Prepare for making the drivers not access tzd's private members. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> [staticize thermal_zone_device_set_mode()] Signed-off-by: kernel test robot <lkp@intel.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20200629122925.21729-7-andrzej.p@collabora.com
This commit is contained in:
committed by
Daniel Lezcano
parent
1ee14820fd
commit
ac5d9ecc74
@@ -459,6 +459,59 @@ static void thermal_zone_device_reset(struct thermal_zone_device *tz)
|
|||||||
thermal_zone_device_init(tz);
|
thermal_zone_device_init(tz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int thermal_zone_device_set_mode(struct thermal_zone_device *tz,
|
||||||
|
enum thermal_device_mode mode)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
mutex_lock(&tz->lock);
|
||||||
|
|
||||||
|
/* do nothing if mode isn't changing */
|
||||||
|
if (mode == tz->mode) {
|
||||||
|
mutex_unlock(&tz->lock);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tz->ops->set_mode)
|
||||||
|
ret = tz->ops->set_mode(tz, mode);
|
||||||
|
|
||||||
|
if (!ret)
|
||||||
|
tz->mode = mode;
|
||||||
|
|
||||||
|
mutex_unlock(&tz->lock);
|
||||||
|
|
||||||
|
thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int thermal_zone_device_enable(struct thermal_zone_device *tz)
|
||||||
|
{
|
||||||
|
return thermal_zone_device_set_mode(tz, THERMAL_DEVICE_ENABLED);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(thermal_zone_device_enable);
|
||||||
|
|
||||||
|
int thermal_zone_device_disable(struct thermal_zone_device *tz)
|
||||||
|
{
|
||||||
|
return thermal_zone_device_set_mode(tz, THERMAL_DEVICE_DISABLED);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(thermal_zone_device_disable);
|
||||||
|
|
||||||
|
int thermal_zone_device_is_enabled(struct thermal_zone_device *tz)
|
||||||
|
{
|
||||||
|
enum thermal_device_mode mode;
|
||||||
|
|
||||||
|
mutex_lock(&tz->lock);
|
||||||
|
|
||||||
|
mode = tz->mode;
|
||||||
|
|
||||||
|
mutex_unlock(&tz->lock);
|
||||||
|
|
||||||
|
return mode == THERMAL_DEVICE_ENABLED;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(thermal_zone_device_is_enabled);
|
||||||
|
|
||||||
void thermal_zone_device_update(struct thermal_zone_device *tz,
|
void thermal_zone_device_update(struct thermal_zone_device *tz,
|
||||||
enum thermal_notify_event event)
|
enum thermal_notify_event event)
|
||||||
{
|
{
|
||||||
|
@@ -416,6 +416,9 @@ int thermal_zone_get_offset(struct thermal_zone_device *tz);
|
|||||||
|
|
||||||
void thermal_cdev_update(struct thermal_cooling_device *);
|
void thermal_cdev_update(struct thermal_cooling_device *);
|
||||||
void thermal_notify_framework(struct thermal_zone_device *, int);
|
void thermal_notify_framework(struct thermal_zone_device *, int);
|
||||||
|
int thermal_zone_device_enable(struct thermal_zone_device *tz);
|
||||||
|
int thermal_zone_device_disable(struct thermal_zone_device *tz);
|
||||||
|
int thermal_zone_device_is_enabled(struct thermal_zone_device *tz);
|
||||||
#else
|
#else
|
||||||
static inline struct thermal_zone_device *thermal_zone_device_register(
|
static inline struct thermal_zone_device *thermal_zone_device_register(
|
||||||
const char *type, int trips, int mask, void *devdata,
|
const char *type, int trips, int mask, void *devdata,
|
||||||
@@ -463,6 +466,16 @@ static inline void thermal_cdev_update(struct thermal_cooling_device *cdev)
|
|||||||
static inline void thermal_notify_framework(struct thermal_zone_device *tz,
|
static inline void thermal_notify_framework(struct thermal_zone_device *tz,
|
||||||
int trip)
|
int trip)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
static inline int thermal_zone_device_enable(struct thermal_zone_device *tz)
|
||||||
|
{ return -ENODEV; }
|
||||||
|
|
||||||
|
static inline int thermal_zone_device_disable(struct thermal_zone_device *tz)
|
||||||
|
{ return -ENODEV; }
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
thermal_zone_device_is_enabled(struct thermal_zone_device *tz)
|
||||||
|
{ return -ENODEV; }
|
||||||
#endif /* CONFIG_THERMAL */
|
#endif /* CONFIG_THERMAL */
|
||||||
|
|
||||||
#endif /* __THERMAL_H__ */
|
#endif /* __THERMAL_H__ */
|
||||||
|
Reference in New Issue
Block a user